Risposte:
Questo ti sta solo nohup
dicendo cosa è impostato; lo restituisce al suo errore standard, a cui hai reindirizzato nohup.err
. Puoi evitare il messaggio reindirizzando il suo input standard:
nohup bash life.bash > nohup.out 2> nohup.err < /dev/null &
nohup
controlla il suo input standard, output standard ed errore standard per vedere quali sono collegati ad un terminale; se trova qualcuno collegato, li gestisce come appropriato (ignorando l'input, reindirizzando l'output nohup.out
, reindirizzando l'errore all'output standard) e ti dice cosa è stato fatto. Se non trova nulla di cui ha bisogno per disconnettersi, non emette nulla da solo.
nohup
ti sta dicendo esattamente cosa sta facendo, che sta ignorando l'input.
Se vuoi evitare questo messaggio, reindirizza lo stdin da /dev/null
questo
nohup bash life.bash </dev/null >nohup.out 2>nohup.err &
man nohup
"Se l'input standard è un terminale, reindirizzarlo da un file illeggibile."
Quindi,
nohup: ignoring input and appending output to 'nohup.out'
Sta facendo quello che dovrebbe fare, nonostante le voci OPTION , ecco perché l'input viene scartato.
ANCHE Sembra si stanno facendo uso ridondante di reindirizzamento. nohup crea già un nohup.out per te e, se tutto funziona bene, anche stderr dovrebbe essere reindirizzato lì.
Saluti!
nohup
niente;bash life.bash >life.out 2>life.err </dev/null & disown -h "$!"
fa lo stesso usando solo funzionalità integrate nella shell stessa.