Wenn Sie die Weiterleitungen selbst vornehmen, hat dies fast keinen Sinn nohup. bash life.bash >life.out 2>life.err </dev/null & disown -h "$!"dasselbe mit nur in die Shell selbst eingebauten Funktionen.
Charles Duffy
Antworten:
12
Das nohupsagt 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Ü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.outumleiten, Fehler an Standardausgabe umleiten) und es wird angegeben, was getan wird. Wenn es nichts findet, was es trennen muss, gibt es selbst nichts aus.
"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.
nohup
.bash life.bash >life.out 2>life.err </dev/null & disown -h "$!"
dasselbe mit nur in die Shell selbst eingebauten Funktionen.Antworten:
Das
nohup
sagt Ihnen nur , was es eingerichtet hat. es gibt das zu seinem Standardfehler aus, zu dem Sie umgeleitet habennohup.err
. Sie können die Nachricht umgehen, indem Sie die Standardeingabe umleiten: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 annohup.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.quelle
nohup
sagt Ihnen genau, was es tut, dass es Eingaben ignoriert.Wenn Sie diese Nachricht zu vermeiden, Umleitung stdin aus
/dev/null
wie diesequelle
"Wenn es sich bei der Standardeingabe um ein Terminal handelt, leiten Sie es von einer nicht lesbaren Datei um."
Daher,
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!
quelle