Відповіді:
Nohup змушує програму ігнорувати HUP-сигнал, що дозволяє йому працювати після закриття поточного терміналу / виходу користувача. Nohup не надсилає програму на другий план.
& в кінці команди пов'язано з контролем роботи оболонки, що дозволяє користувачеві продовжувати роботу в поточному сеансі оболонки.
Зазвичай nohup та & поєднуються для запуску програми, яка запускається після виходу з користувача та дозволяє продовжувати роботу на поточному сеансі оболонки.
Як правило, я використовую, &
коли я хочу запустити у фоновому режимі команду, яка не потребуватиме багато часу, або ту, де мені не буде байдуже, чи програма припиняється, якщо я несподівано вийшов із сеансу.
xcalc &
rdesktop 1.2.3.4 &
./this_only_takes_a_few_seconds_but_i_want_my_shell_back.py &
Під час роботи над VPN або хитрим віддаленим з'єднанням я схильний використовувати nohup
для запуску все, що запустить певний час. Наприклад, під час великого імпорту даних на віддаленому хості, можливо, ви хочете скористатися nohup
для того, щоб уникнути відключення, коли ви перейдете наново.
nohup ./do_data_load.py mydatafile.txt &
Він також використовується, коли розробник не належним чином демонструє послугу, тому вам доведеться використовувати її nohup
для того, щоб вона не загинула під час виходу з системи.
nohup sillyd &
Якщо ви забули використовувати nohup
під час запуску щось на кшталт останніх двох прикладів, ви можете використовувати bash або zsh вбудований disown
для того ж ефекту.
$ sillyd &
[1] 12345 # Whoops!
$ disown %1
Це досить рідко використовувати nohup
без &
, так як ви не можете прикріпити до nohup'd сесії , якщо ви вийшли з системи . Це в значній мірі виключає його корисність для інтерактивних команд. У випадку, коли у вас є інтерактивна команда, яку ви хочете зберігати протягом сеансів або уникати складних роз'єднань, ви можете використовувати screen
. Вогнева міць повністю озброєної та оперативної screen
сесії виходить за рамки цієї посади, тому вам слід перевірити її більш детально .
byobu
що додає екрану деякі приємні функції. Він доступний у більшості сприятливих репостів та у репортах EPEL для Red Hat.
nohup: вихід поточного користувача, процес не зупиниться
&: з цим символом у поточному терміналі не буде виведення, процес, що працює у фоновому режимі