Відповіді:
Це просто nohup
розповість вам, що це налаштовано; він виводить цю стандартну помилку, на яку ви перенаправлені nohup.err
. Ви можете уникнути повідомлення, перенаправивши його стандартний вхід:
nohup bash life.bash > nohup.out 2> nohup.err < /dev/null &
nohup
перевіряє його стандартний вхід, стандартний вихід і стандартну помилку, щоб побачити, які підключені до терміналу; якщо він знайде будь-які підключені, він обробляє їх як належне (ігноруючи введення, перенаправляючи вихід nohup.out
, помилку перенаправляючи до стандартного виводу), і повідомляє, що це робиться. Якщо він не знаходить нічого, що потрібно для відключення, він нічого не виводить сам.
nohup
говорить саме про те, що він робить, що ігнорує введення.
Якщо ви хочете уникнути цього повідомлення, перенаправляйте stdin з /dev/null
подібного
nohup bash life.bash </dev/null >nohup.out 2>nohup.err &
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 "$!"
робить те ж саме, використовуючи лише функціонал, вбудований у саму оболонку.