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