Antworten:
Das nohup
sagt Ihnen nur , was es eingerichtet hat. es gibt das zu seinem Standardfehler aus, zu dem Sie umgeleitet haben nohup.err
. Sie können die Nachricht umgehen, indem Sie die Standardeingabe umleiten:
nohup bash life.bash > nohup.out 2> nohup.err < /dev/null &
nohup
Überprüft die Standardeingabe, die Standardausgabe und den Standardfehler, um festzustellen, welche Geräte an ein Terminal angeschlossen sind. Wenn eine Verbindung gefunden wird, werden diese entsprechend behandelt (Eingaben ignorieren, Ausgaben an nohup.out
umleiten, Fehler an Standardausgabe umleiten) und es wird angegeben, was getan wird. Wenn es nichts findet, was es trennen muss, gibt es selbst nichts aus.
man nohup
"Wenn es sich bei der Standardeingabe um ein Terminal handelt, leiten Sie es von einer nicht lesbaren Datei um."
Daher,
nohup: ignoring input and appending output to 'nohup.out'
Es tut, was es tun soll, ungeachtet der OPTION- Einträge, deshalb werden Eingaben verworfen.
AUCH Sie nutzen die Umleitung anscheinend überflüssig. nohup erstellt bereits ein nohup.out für Sie und wenn alles in Ordnung ist, sollte stderr auch dort umgeleitet werden.
Prost!
nohup
.bash life.bash >life.out 2>life.err </dev/null & disown -h "$!"
dasselbe mit nur in die Shell selbst eingebauten Funktionen.