Этот вопрос старый, и я до сих пор не понимаю, почему.
Оригинальный вопрос в 2014 году:
На вкладке Терминал Gnome я запустил
$ nohup chromium-browser &
Но когда я закрываю вкладку терминала, chromium-browser
тоже выходит. Не nohup
должно ли это предотвратить? Жиль сказал:
Можно сказать, что nohup и disown подавляют SIGHUP, но по-разному. nohup заставляет программу изначально игнорировать сигнал (программа может изменить это). nohup также пытается устроить так, чтобы программа не имела управляющего терминала, чтобы ядро не отправляло SIGHUP, когда терминал закрыт. отречение является чисто внутренним для оболочки; это заставляет оболочку не отправлять SIGHUP, когда это завершается.
Так что же, nohup заставляет браузер chromium игнорировать SIGHUP?
Я вижу это и на других исполняемых файлах, таких как Emacs (режим GUI). Но не на xeyes.
Это происходит в Ubuntu 12.04, 32-битном, когда вопрос был опубликован.
Обновление в 2015 году,
Сейчас я использую Ubuntu 14.04, google-chrome
вместо chromium-browser
установленного. То же самое, что происходило с Chromium-браузером раньше, также происходит и с Google-Chrome. nohup google-chrome 2>/dev/null &
не сохраняет его от закрытия, когда вкладка терминала закрыта. /usr/bin/google-chrome
это ссылка на Баш скрипт /opt/google/chrome/google-chrome
. Почему nohup
применяется к сценарию bash не работает? Как мы можем заставить его работать на скриптах bash? А как насчет скриптов Python?
xeyes
.