Читать книгу Linux Bible - Christopher Negus - Страница 182
Starting background processes
ОглавлениеIf you have programs that you want to run while you continue to work in the shell, you can place the programs in the background. To place a program in the background at the time you run the program, type an ampersand (&
) at the end of the command line, like this:
$ find /usr> /tmp/allusrfiles & [3] 15971
This example command finds all files on your Linux system (starting from /usr
), prints those filenames, and puts those names in the file /tmp/allusrfiles
. The ampersand (&
) runs that command line in the background. Notice that the job number, [3]
, and process ID number, 15971
, are displayed when the command is launched. To check which commands you have running in the background, use the jobs
command, as follows:
$ jobs [1] Stopped (tty output) vi /tmp/myfile [2] Running find /usr -print > /tmp/allusrfiles & [3] Running nroff -man /usr/man2/* >/tmp/man2 & [4]- Running nroff -man /usr/man3/* >/tmp/man3 & [5]+ Stopped nroff -man /usr/man4/* >/tmp/man4
The first job shows a text-editing command (vi
) that I placed in the background and stopped by pressing Ctrl+Z while I was editing. Job 2 shows the find
command I just ran. Jobs 3 and 4 show nroff
commands currently running in the background. Job 5 had been running in the shell (foreground) until I decided too many processes were running and pressed Ctrl+Z to stop job 5 until a few processes had completed.
The plus sign (+
) next to number 5 shows that it was most recently placed in the background. The minus sign (-
) next to number 4 shows that it was placed in the background just before the most recent background job. Because job 1 requires terminal input, it cannot run in the background. As a result, it is Stopped
until it is brought to the foreground again.