Запущенный процесс в обычном режиме работает в режиме “foreground“, т.е. – “на переднем плане” или, другими словами, “в приоритетном режиме”. В таком режиме он принимает команды с управляющего терминала, в котором он запущен, и на него же выводит информацию
stdout
и stderr
. Кроме того, он делает недоступным командную строку.
Что бы запустить задачу в фоновом режиме – в конце команды необходимо добавить знак &
, например:
# tar cpf usr.lib.tar usr/lib 2>/dev/null &
Отобразить список текущих фоновых задач можно командой jobs
:
# jobs [6]- Stopped watch ls (wd: /home/setevoy) [7]+ Stopped top
Либо – запустить её в обычном режиме, после чего нажать комбинацию ctrl+Z, отправив ей сигнал TSTR
. Подробнее о сигналах – в статье Linux&FreeBSD: команды kill, nohup — сигналы и управление процессами. После этого – она появится в списке jobs
с новым номером:
# tar cpf usr.lib.tar usr/lib 2>/dev/null ^Z [8]+ Stopped tar cpf usr.lib.tar usr/lib 2> /dev/null
Теперь, что бы продолжить её выполнение в фоновом режиме – введите команду bg
(background):
# bg [8]+ tar cpf usr.lib.tar usr/lib 2> /dev/null &
Кроме обычных PID
, у задач в фоне имеется собственный номер, который всегда начинается с единицы (если нет других фоновых задач). Кроме того, jobs
отображает состояние процесса – Running, Stopped, Done, Exit
.
Например, по окончании архивирования – статус задачи станет Done
:
# jobs [6]- Stopped watch ls (wd: /home/setevoy) [7]+ Stopped top [8] Done tar cpf usr.lib.tar usr/lib 2> /dev/null
Если команду jobs
запустить из каталога отличного от того, в котором была запущена сама задача – jobs
укажет её wd
– working directory. так же, необходимо учитывать, что для каждого управляющего терминала номера задач в jobs
будут независимы и начинаться с единицы.
Что бы вывести задачу из фонового режима – используется команда fg
(foreground), которой можно либо передать номер задачи в качестве аргумента, либо – запустить без аргументов. В последнем случае – будет выведена задача, отмеченная знаком +
в списке jobs
, т.е. – последняя отправленная “в фон” задача.
Например, команда:
# fg 7
Вернёт на экран утилиту top
и переведёт её в режим Running
.