nohup: ігнорування введення - що це означає?


18

Я 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 "$!"робить те ж саме, використовуючи лише функціонал, вбудований у саму оболонку.
Чарльз Даффі

Відповіді:


14

Це просто nohupрозповість вам, що це налаштовано; він виводить цю стандартну помилку, на яку ви перенаправлені nohup.err. Ви можете уникнути повідомлення, перенаправивши його стандартний вхід:

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

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


6

nohup говорить саме про те, що він робить, що ігнорує введення.

Якщо ви хочете уникнути цього повідомлення, перенаправляйте stdin з /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.