nohup и screen не работают при запуске программы в фоновом режиме?

nohup и screen не работают при запуске программы в фоновом режиме?

Я не знаю почему, но моя screenкоманда, запущенная на сервере, останавливается сама по себе. Поэтому я попытался использовать nohup. например:

nohup bzcat a.bz

Но когда я бегу, nohupэто дает мне

nohup: ignoring input and appending output to `nohup.out'

Также для возобновления я запускаю: fgчто дает мне:

-bash: fg: current: no such job

решение1

Сообщение от nohupсовершенно нормальное. Оно просто объясняет, что оно делает. Когда вы запускаете программу с помощью nohup, она больше не использует то, что вы печатаете на терминале, и не выводит ничего на терминал. nohupперенаправляет вывод программы в файл с именем nohup.out.

И это очень отличается от nohupпрограммы, запущенной в фоновом режиме (запуск в фоновом режиме был бы bzcat a.bz &). Когда программа работает в фоновом режиме, она игнорирует ввод с терминала (только программа, запущенная в фоновом режиме, может использовать то, что вы вводите в терминале, поэтому она называется «процессом переднего плана», потому что это тот, с которым вы фактически взаимодействуете), но она выводит данные на терминал. Можно запустить программу как в режиме nohup, так и в фоновом режиме. Фактически, обычно это так и nohupиспользуется. Если вы запускаете nohupпрограмму, но не запускаете ее в фоновом режиме, вы не можете вызвать fgее, потому что она на самом деле не находится в фоновом режиме. Она просто не выводит данные на терминал.

nohupпозволяет вам запускать программу в режиме, в котором она будет игнорировать HUPсигналы. Терминалы обычно посылают HUPсигналы, когда вы закрываете терминал. Поэтому программа, работающая в фоновом режиме в режиме nohup, не остановится, когда вы закроете терминал, в котором вы ее запустили.

Связанный контент