Difference between revisions of "Bg, fg and jobs"

From Linuxintro
imported>ThorstenStaerk
imported>ThorstenStaerk
 
(7 intermediate revisions by the same user not shown)
Line 6: Line 6:
  
 
[[File:Snapshot-fg-xclock.png]]
 
[[File:Snapshot-fg-xclock.png]]
 +
 +
This program runs in the foreground, the console is reserved for its in- and output. To run the same program in the background, start it with the ampersand ("&") after the program name:
 +
xclock &
 +
 +
[[File:Snapshot-bg-xclock.png]]
 +
 +
In this case you can continue to call further [[commands]] on the console.
 +
 +
= Hints =
 +
Maybe you have started a program without the & behind it, and now you want to use console to issue further commands. In this case stop the program using CTRL_Z:
 +
tweedleburg:~ # xclock
 +
^Z
 +
[1]+  Stopped                xclock
 +
List it using the command jobs
 +
tweedleburg:~ # jobs
 +
[1]+  Stopped                xclock
 +
And send it to the background using the command bg
 +
tweedleburg:~ # bg
 +
[1]+ xclock &
 +
tweedleburg:~ #
 +
Now it will be as if you had called the command with the & behind it. You will be able to use console for issueing further commands.
 +
 +
= See also =
 +
* [[disown]]
 +
* http://www.lehman.cuny.edu/cgi-bin/man-cgi?jobs+1
 +
 +
[[Category:Concept]]

Latest revision as of 08:13, 22 April 2014

bg, fg and jobs are process related commands that belong together. bg stands for background and fg stands for foreground.

Concept

When you start a program under Linux, by default the command runs in the foreground. This means the console is reserved for in- and output to and from this program. You do not get a prompt while the program is running. Here is an example for this showing the program xclock being called by the command

xclock

Snapshot-fg-xclock.png

This program runs in the foreground, the console is reserved for its in- and output. To run the same program in the background, start it with the ampersand ("&") after the program name:

xclock &

Snapshot-bg-xclock.png

In this case you can continue to call further commands on the console.

Hints

Maybe you have started a program without the & behind it, and now you want to use console to issue further commands. In this case stop the program using CTRL_Z:

tweedleburg:~ # xclock
^Z
[1]+  Stopped                 xclock

List it using the command jobs

tweedleburg:~ # jobs
[1]+  Stopped                 xclock

And send it to the background using the command bg

tweedleburg:~ # bg
[1]+ xclock &
tweedleburg:~ #

Now it will be as if you had called the command with the & behind it. You will be able to use console for issueing further commands.

See also