summaryrefslogtreecommitdiffstats
path: root/slackbook/html/process-control-foregrounding.html
blob: 7b185ba7408b9bfaf6e2eb9312e011d6fa510a36 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org" />
<title>Foregrounding</title>
<meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.7" />
<link rel="HOME" title="Slackware Linux Essentials" href="index.html" />
<link rel="UP" title="Process Control" href="process-control.html" />
<link rel="PREVIOUS" title="Process Control" href="process-control.html" />
<link rel="NEXT" title="ps" href="process-control-ps.html" />
<link rel="STYLESHEET" type="text/css" href="docbook.css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body class="SECT1" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#840084"
alink="#0000FF">
<div class="NAVHEADER">
<table summary="Header navigation table" width="100%" border="0" cellpadding="0"
cellspacing="0">
<tr>
<th colspan="3" align="center">Slackware Linux Essentials</th>
</tr>

<tr>
<td width="10%" align="left" valign="bottom"><a href="process-control.html"
accesskey="P">Prev</a></td>
<td width="80%" align="center" valign="bottom">Chapter 11 Process Control</td>
<td width="10%" align="right" valign="bottom"><a href="process-control-ps.html"
accesskey="N">Next</a></td>
</tr>
</table>

<hr align="LEFT" width="100%" />
</div>

<div class="SECT1">
<h1 class="SECT1"><a id="PROCESS-CONTROL-FOREGROUNDING"
name="PROCESS-CONTROL-FOREGROUNDING">11.2 Foregrounding</a></h1>

<p>If you need to interact with a backgrounded process, you can bring it back into the
foreground. If you've only got one backgrounded process, you can bring it back by
typing:</p>

<table border="0" bgcolor="#E0E0E0" width="100%">
<tr>
<td>
<pre class="SCREEN">
<samp class="PROMPT">%</samp> <kbd class="USERINPUT">fg</kbd>
</pre>
</td>
</tr>
</table>

<p>If the program is not done running, the program will take control over you terminal
and you will not be returned to a prompt. Sometimes, the program will finish running
while backgrounded. In this instance, you'll get a message like this:</p>

<table border="0" bgcolor="#E0E0E0" width="100%">
<tr>
<td>
<pre class="SCREEN">
[1]+  Done              /bin/ls $LS_OPTIONS
</pre>
</td>
</tr>
</table>

<p>That tells you that the backgrounded process (in this case <tt class="COMMAND">ls</tt>
- not terribly interesting) has completed.</p>

<p>It is possible to have several processes backgrounded at once. When this happens,
you'll need to know which process you want to bring back to the foreground. Just typing
<tt class="COMMAND">fg</tt> will foreground the process that was last backgrounded. What
if you had a whole list of processes in the background? Luckily, bash includes a command
to list all the processes. It's called <tt class="COMMAND">jobs</tt> and gives output
like so:</p>

<table border="0" bgcolor="#E0E0E0" width="100%">
<tr>
<td>
<pre class="SCREEN">
<samp class="PROMPT">%</samp> <kbd class="USERINPUT">jobs</kbd>
[1]   Stopped                 vim
[2]-  Stopped                 amp
[3]+  Stopped                 man ps
</pre>
</td>
</tr>
</table>

<p>This shows you a list of all the processes that are backgrounded. As you can see, they
are all stopped. This means that the processes are suspended. The number is a sort of ID
for all the backgrounded processes. The ID with a plus sign beside it (<var
class="LITERAL">man ps</var>) is the process that will be foregrounded if you just type
<tt class="COMMAND">fg</tt>.</p>

<p>If you wanted to foreground <tt class="COMMAND">vim</tt>, you would type:</p>

<table border="0" bgcolor="#E0E0E0" width="100%">
<tr>
<td>
<pre class="SCREEN">
<samp class="PROMPT">%</samp> <kbd class="USERINPUT">fg 1</kbd>
</pre>
</td>
</tr>
</table>

<p>and <tt class="COMMAND">vim</tt> would spring back up to the console. Backgrounding
processes can be very useful if you only have one terminal open over a dialup connection.
You can have several programs running on that one terminal, periodically switching back
and forth between them.</p>
</div>

<div class="NAVFOOTER">
<hr align="LEFT" width="100%" />
<table summary="Footer navigation table" width="100%" border="0" cellpadding="0"
cellspacing="0">
<tr>
<td width="33%" align="left" valign="top"><a href="process-control.html"
accesskey="P">Prev</a></td>
<td width="34%" align="center" valign="top"><a href="index.html"
accesskey="H">Home</a></td>
<td width="33%" align="right" valign="top"><a href="process-control-ps.html"
accesskey="N">Next</a></td>
</tr>

<tr>
<td width="33%" align="left" valign="top">Process Control</td>
<td width="34%" align="center" valign="top"><a href="process-control.html"
accesskey="U">Up</a></td>
<td width="33%" align="right" valign="top"><tt class="COMMAND">ps</tt></td>
</tr>
</table>
</div>
</body>
</html>