web-dev-qa-db-fra.com

Existe-t-il un moyen de rediriger la sortie Nohup vers un fichier journal autre que Nohup.out?

J'utilise fréquemment le programme Nohup pour que mes processus soient à l'abri des blocages. Donc, si je veux rendre le programme program immunisé contre les blocages, j'utilise la commande

Nohup program &

& met le processus en arrière-plan.

Au démarrage, Nohup me donne le message:

Nohup: ajout d'une sortie à `Nohup.out '

Existe-t-il un moyen d'envoyer la sortie vers un fichier autre que Nohup.out? Souvent, je veux exécuter de nombreux processus dans le même répertoire en utilisant Nohup, mais si je le fais, toute la sortie est regroupée dans un seul Nohup.out fichier.

La page de manuel (par exemple, ici ) ne semble pas avoir d'option pour spécifier le fichier journal. Pouvez-vous confirmer cela? De plus, avez-vous une idée de la façon dont je peux contourner ce problème?

126
Andrew

La page de manuel GNU coreutils Nohup indique que vous pouvez utiliser la redirection normale:

Si l'entrée standard est un terminal, redirigez-le depuis/dev/null. Si la sortie standard est un terminal, ajoutez la sortie à 'Nohup.out' si possible, '$ HOME/Nohup.out' sinon. Si l'erreur standard est un terminal, redirigez-le vers la sortie standard. Pour enregistrer la sortie dans FILE, utilisez 'Nohup COMMAND> FILE'.

Edit: je n'ai pas lu votre lien au début; vous pouvez avoir une version différente de Nohup, bien que cette section suggère que vous pouvez toujours utiliser la redirection normale:

 Nohup.out          The output file of the Nohup execution if
                    standard  output is a terminal and if the
                    current directory is writable.

Vous pouvez rediriger la sortie standard et l'erreur standard vers différents fichiers:

Nohup myprogram > myprogram.out 2> myprogram.err

ou dans le même fichier:

Nohup myprogram > myprogram.out 2>&1
152
lk-

Ajouter Jim commentaire comme réponse ici pour plus de visibilité.

utilisation Nohup program > program.out & pour écrire la sortie dans program.out au lieu de Nohup.out

5
mrsrinivas