Réponses:
C'est juste nohup
vous dire ce qu'il est mis en place; il renvoie cela à son erreur standard, vers laquelle vous avez redirigé nohup.err
. Vous pouvez éviter le message en redirigeant son entrée standard:
nohup bash life.bash > nohup.out 2> nohup.err < /dev/null &
nohup
vérifie son entrée standard, sa sortie standard et son erreur standard pour voir lesquels sont connectés à un terminal; s'il en trouve qui sont connectés, il les traite comme il convient (en ignorant l'entrée, en redirigeant la sortie vers nohup.out
, en redirigeant l'erreur vers la sortie standard), et vous indique ce qu'il a fait. S'il ne trouve rien dont il a besoin pour se déconnecter, il ne produit rien lui-même.
nohup
vous dit exactement ce qu'il fait, qu'il ignore les entrées.
Si vous voulez éviter ce message, redirection stdin de /dev/null
comme celui - ci
nohup bash life.bash </dev/null >nohup.out 2>nohup.err &
man nohup
"Si l'entrée standard est un terminal, redirigez-le depuis un fichier illisible."
Par conséquent,
nohup: ignoring input and appending output to 'nohup.out'
Il fait ce qu'il est censé faire, malgré les entrées OPTION , c'est pourquoi l'entrée est rejetée.
AUSSI Il semble que vous faites un usage redondant de la redirection. nohup crée déjà un nohup.out pour vous et, si tout fonctionne bien, stderr devrait également y être redirigé.
À votre santé!
nohup
tout;bash life.bash >life.out 2>life.err </dev/null & disown -h "$!"
fait de même en utilisant uniquement les fonctionnalités intégrées au shell lui-même.