Відповіді:
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: вихід поточного користувача, процес не зупиниться
&: з цим символом у поточному терміналі не буде виведення, процес, що працює у фоновому режимі