Операционная система Free BSD

Защита фоновых процессов, команда nohup


Для того, чтобы запустить процесс в фоновом режиме, нужно просто набрать & после имени команды, например: # cat /var/log/messages | grep fetchmail > fetchmail.log &

Но если, к примеру, вы используете в качестве shell интерпретатор sh, и сразу же после этой команды выйдете из системы командой exit (или Ctrl+D), интерпретатор пошлет сигнал отбой (HUP) этому процессу (как впрочем, и всем, им порожденным).

Для то, чтобы этого не произошло, нужно запустить эту команду с помощью команды nohup. # nohup cat /var/log/messages | grep fetchmail > fetchmail.log &

В этом случае, сигнал отбоя от sh будет проигнорирован.

Правда у команды nohup есть побочные эффекты: она увеличивает значение nice на +5

если стандартный файл вывода не переназначен, то весь вывод пойдет в файл nohup.out (в нашем случае этого не произойдет)Замечание: Если вы пользуетесь csh или другими современными интерпретаторами, то вы вполне можете обходиться без команды nohup.

Вопрос: Как прервать процесс по имени?

Ответ: Используйте команду killall.

Сopyright © 2000.



Содержание раздела