Если вы собираетесь делать перенаправления самостоятельно, вы почти ничего не используете nohup; bash life.bash >life.out 2>life.err </dev/null & disown -h "$!"делает то же самое, используя только функциональность, встроенную в саму оболочку.
Чарльз Даффи
Ответы:
12
Это просто nohupговорит вам, что это настроено; это выводит это к его стандартной ошибке, к которой вы перенаправили nohup.err. Вы можете избежать сообщения, перенаправив его стандартный ввод:
nohupпроверяет его стандартный ввод, стандартный вывод и стандартную ошибку, чтобы увидеть, какие из них подключены к терминалу; если он находит какие-либо подключенные, он обрабатывает их соответствующим образом (игнорируя ввод, перенаправляя вывод в nohup.out, перенаправляя ошибку в стандартный вывод), и сообщает вам, что он сделал. Если он не находит ничего, что нужно отключить, он сам ничего не выводит.
Я надеюсь, что это означает, что он игнорирует все вводимые с клавиатуры данные в простом смысле, поскольку он работает в фоновом режиме.
Манохар Редди Поредди
3
man nohup
«Если стандартный ввод - это терминал, перенаправьте его из нечитаемого файла».
Следовательно,
nohup: ignoring input and appending output to 'nohup.out'
Он делает то, что должен делать, несмотря на записи OPTION , поэтому ввод отбрасывается.
ТАКЖЕ Кажется, вы используете избыточное использование перенаправления. nohup уже создает для вас nohup.out, и, если все работает нормально, stderr также должен быть перенаправлен туда.
nohup
;bash life.bash >life.out 2>life.err </dev/null & disown -h "$!"
делает то же самое, используя только функциональность, встроенную в саму оболочку.Ответы:
Это просто
nohup
говорит вам, что это настроено; это выводит это к его стандартной ошибке, к которой вы перенаправилиnohup.err
. Вы можете избежать сообщения, перенаправив его стандартный ввод:nohup
проверяет его стандартный ввод, стандартный вывод и стандартную ошибку, чтобы увидеть, какие из них подключены к терминалу; если он находит какие-либо подключенные, он обрабатывает их соответствующим образом (игнорируя ввод, перенаправляя вывод вnohup.out
, перенаправляя ошибку в стандартный вывод), и сообщает вам, что он сделал. Если он не находит ничего, что нужно отключить, он сам ничего не выводит.источник
nohup
говорит вам точно, что он делает, что игнорирует ввод.Если вы хотите избежать этого сообщения, перенаправьте стандартный ввод с
/dev/null
этогоисточник
«Если стандартный ввод - это терминал, перенаправьте его из нечитаемого файла».
Следовательно,
Он делает то, что должен делать, несмотря на записи OPTION , поэтому ввод отбрасывается.
ТАКЖЕ Кажется, вы используете избыточное использование перенаправления. nohup уже создает для вас nohup.out, и, если все работает нормально, stderr также должен быть перенаправлен туда.
Ура!
источник