Linux jobs — системные задания, которые создаются пользователем в неограниченных количествах с возможностью переключения от одного к другому (с переднего на задний план и в обратном направлении).
Работа всегда производится с тем заданием, которое находится на переднем плане (foreground).
Linux jobs и команды по управлению ими
CTRL+Z работает с большинством процессов — переводит их в подвешенное состояние — останавливает и отправляет на задний план.
Все остановленные команды можно посмотреть введя в терминале jobs
jobs
Например:
ping ya.ru
CTRL+Z
Запустим второй процесс
top
CTRL+Z
Сейчас выполняются оба находясь при этом в фоне:
jobs
[1]- Stopped ping ya.ru
[2]+ Stopped top
Теперь можно переместить одно из заданий на передний план указав его номер
fg 1
ping ya.ru
64 bytes from www.yandex.ru (93.158.134.3): icmp_seq=4 ttl=57 time=30.3 ms
64 bytes from www.yandex.ru (93.158.134.3): icmp_seq=5 ttl=57 time=29.0 ms
При переводе на передний план вывод производится в основной терминал, более ничего не меняется и задание выполняется в любом случае
tail -f /var/log/deamon.log
Можно таким же образом вывести команду на задний план
bg
или
tail -f /var/log/deamon.log &
Вывод команды таким образом продолжит быть присоединенным к терминалу, результат tail -f снова выведется в консоль как только в лог будет записываться информация (сэмулировать ситуацию можно перезапустив какой-либо демон подключившись к системе через другой терминал).
При выполнении в bg таким образом для нескольких команд их вывод в терминал будет смешиваться случайным образом, что может быть не очень удобно.
Если запустить команду со знаком амперсанда изначально она будет отображаться в выводе jobs как выполняющийся процесс со статусом Running.
Пример приведен на скриншоте:
Удалить процесс можно указывая его номер со знаком процента
kill %3
Работа с Linux jobs является типичной операцией поручному управлению системными процессами. Читайте подробнее про управление процессами и ps aux