nohup: игнорирование ввода - что это значит?


16

Я использую nohupкоманду от времени, как

nohup bash life.bash > nohup.out 2> nohup.err &

В nohup.errфайле у меня всегда есть строка nohup: ignoring input. Не могли бы вы помочь мне понять, что это значит?


Если вы собираетесь делать перенаправления самостоятельно, вы почти ничего не используете nohup; bash life.bash >life.out 2>life.err </dev/null & disown -h "$!"делает то же самое, используя только функциональность, встроенную в саму оболочку.
Чарльз Даффи

Ответы:


12

Это просто nohupговорит вам, что это настроено; это выводит это к его стандартной ошибке, к которой вы перенаправили nohup.err. Вы можете избежать сообщения, перенаправив его стандартный ввод:

nohup bash life.bash > nohup.out 2> nohup.err < /dev/null &

nohupпроверяет его стандартный ввод, стандартный вывод и стандартную ошибку, чтобы увидеть, какие из них подключены к терминалу; если он находит какие-либо подключенные, он обрабатывает их соответствующим образом (игнорируя ввод, перенаправляя вывод в nohup.out, перенаправляя ошибку в стандартный вывод), и сообщает вам, что он сделал. Если он не находит ничего, что нужно отключить, он сам ничего не выводит.


6

nohup говорит вам точно, что он делает, что игнорирует ввод.

Если вы хотите избежать этого сообщения, перенаправьте стандартный ввод с /dev/nullэтого

nohup bash life.bash </dev/null >nohup.out 2>nohup.err &

Я надеюсь, что это означает, что он игнорирует все вводимые с клавиатуры данные в простом смысле, поскольку он работает в фоновом режиме.
Манохар Редди Поредди

3
man nohup

«Если стандартный ввод - это терминал, перенаправьте его из нечитаемого файла».

Следовательно,

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

Он делает то, что должен делать, несмотря на записи OPTION , поэтому ввод отбрасывается.

ТАКЖЕ Кажется, вы используете избыточное использование перенаправления. nohup уже создает для вас nohup.out, и, если все работает нормально, stderr также должен быть перенаправлен туда.

Ура!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.