Каково различие между nohup и “> и nohup.out &\”?

nohup представляет процесс, неуязвимый для SIGHUP оболочки, но даже если я выполняю это от своей оболочки:

bash -c 'while true; do sleep 1; date; done' >& nohup.out &

затем выйдите из системы и войдите в, удар все еще выполняет и производит вывод для nohup.out. Есть ли какое-либо различие? Полагается только на перенаправление, менее надежное всегда?

5
задан 12.08.2010, 04:04

2 ответа

В ударе фоновые задания не должны быть защищены nohup

В зависимости от Вашей версии удара может быть изменено поведение. В разделе SIGNALS страницы руководства

Если опция оболочки huponexit была установлена с shopt, удар отправляет SIGHUP во все задания, когда интерактивная оболочка входа в систему выходит.

huponexit значения по умолчанию опции к прочь

5
ответ дан 07.12.2019, 17:39

nohup позволяет Вам разъединять выполнение от оболочки,

Nohuping фоновые задания обычно используются, чтобы не завершать их, выходя из системы удаленной сессии SSH. Другой вопрос, который часто возникает в этой ситуации, - то, что ssh отказывается выходить из системы ("зависает"), так как это отказывается терять любые данные из фонового задания (заданий).

Эта проблема может также быть преодолена путем перенаправления всех трех потоков ввода-вывода:
nohup ./myprogram > foo.out 2> foo.err < /dev/null &

Другая ссылка на случай 'зависания' SSH.

1
ответ дан 07.12.2019, 17:39

Теги

Похожие вопросы