nohup: Eingabe ignorieren - was bedeutet das?

14

Ich benutze nohupBefehl von einer Weile wie

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

In der nohup.errDatei habe ich immer eine Zeile nohup: ignoring input. Können Sie mir bitte helfen, herauszufinden, was es bedeutet?

Star
quelle
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 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.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.

Stephen Kitt
quelle
5

nohup sagt Ihnen genau, was es tut, dass es Eingaben ignoriert.

Wenn Sie diese Nachricht zu vermeiden, Umleitung stdin aus /dev/nullwie diese

nohup bash life.bash </dev/null >nohup.out 2>nohup.err &
Roaima
quelle
3
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!

Mario G.
quelle