Это мое понимание об использовании &
, disown
и nohup
:
<command>
: Запускает процесс в текущем Терминале ,bash
например, на переднем плане (т.е. процесс указан в качествеbash
задания на переднем плане иstdin
,stdout
иstderr
по - прежнему связаны с терминалом ); не застрахован от зависаний ;<command> &
: Запускает процесс в текущем Терминале ,bash
например, в фоновом режиме (т.е. процесс указан в качествеbash
фонового задания иstdin
,stdout
иstderr
по - прежнему связаны с терминалом ); не застрахован от зависаний ;<command> & disown
: Запускает процесс в текущем Терминале ,bash
например, в фоновом режиме , но процесс отсоединяются отbash
списка «s рабочих мест» (т.е. процесс не указан в качествеbash
переднего плана / фона работы иstdin
,stdout
иstderr
по - прежнему привязаны к терминалу ); невосприимчив к зависаниям ;nohup <command> & disown
: Запускает процесс в текущем Терминале ,bash
например, в фоновом режиме , но процесс отсоединяются отbash
списка «s рабочих мест» (т.е. процесс не указан в качествеbash
переднего плана / фона работы иstdin
,stdout
иstderr
которые не все еще привязаны к терминалу ) ; невосприимчив к зависаниям ;
Так, помимо nohup <command> & disown
блокирования stdin
и перенаправления stdout
и stderr
на nohup.out
по умолчанию, то мне кажется , что это можно считать полностью эквивалентны <command> & disown
.
Все ли это правильно? Любое заблуждение?
bash
экземпляра не приведет к остановке процесса