Запущенный процесс в обычном режиме работает в режиме «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
.