nohup представляет процесс, неуязвимый для SIGHUP оболочки, но даже если я выполняю это от своей оболочки:
bash -c 'while true; do sleep 1; date; done' >& nohup.out &
затем выйдите из системы и войдите в, удар все еще выполняет и производит вывод для nohup.out. Есть ли какое-либо различие? Полагается только на перенаправление, менее надежное всегда?
В ударе фоновые задания не должны быть защищены nohup
В зависимости от Вашей версии удара может быть изменено поведение. В разделе SIGNALS страницы руководства
Если опция оболочки huponexit была установлена с shopt, удар отправляет SIGHUP во все задания, когда интерактивная оболочка входа в систему выходит.
huponexit значения по умолчанию опции к прочь
nohup
позволяет Вам разъединять выполнение от оболочки,
Nohuping фоновые задания обычно используются, чтобы не завершать их, выходя из системы удаленной сессии SSH. Другой вопрос, который часто возникает в этой ситуации, - то, что ssh отказывается выходить из системы ("зависает"), так как это отказывается терять любые данные из фонового задания (заданий).
Эта проблема может также быть преодолена путем перенаправления всех трех потоков ввода-вывода:
nohup ./myprogram > foo.out 2> foo.err < /dev/null &
Другая ссылка на случай 'зависания' SSH.