Linux jobs

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
64 bytes from www.yandex.ru (93.158.134.3): icmp_seq=6 ttl=57 time=29.0 ms
64 bytes from www.yandex.ru (93.158.134.3): icmp_seq=7 ttl=57 time=29.6 ms

 

При переводе на передний план вывод производится в основной терминал, более ничего не меняется и задание выполняется в любом случае

 

tail -f /var/log/deamon.log

 

Можно таким же образом вывести команду на задний план

bg

или

tail -f /var/log/deamon.log &

 

Вывод команды таким образом продолжит быть присоединенным к терминалу, результат tail -f  снова выведется в консоль как только в лог будет записываться информация (сэмулировать ситуацию можно перезапустив какой-либо демон подключившись к системе через другой терминал).

 

При выполнении в bg таким образом для нескольких команд их вывод в терминал будет смешиваться случайным образом, что может быть не очень удобно.

 

Удалить процесс можно указывая его номер со знаком процента

kill %3

 

Работа с Linux jobs является типичной операцией поручному  управлению системными процессами. Читайте подробнее про ps aux.