Lorsque je lance Nohup some_command &
, la sortie passe à Nohup.out
; man Nohup
dit de regarder info Nohup
qui dit:
Si la sortie standard est un terminal, la sortie standard de la commande est ajoutée au fichier 'Nohup.out'; si cela ne peut pas être écrit, il est ajouté au fichier '$ HOME/Nohup.out'; et si cela ne peut pas être écrit, la commande n'est pas exécutée.
Mais si j'ai déjà une commande utilisant Nohup
avec une sortie allant à /Nohup.out
et que je souhaite en exécuter une autre, Nohup
commande, puis-je rediriger la sortie vers Nohup2.out
?
Nohup some_command &> Nohup2.out&
et le tour est joué.
Ancienne syntaxe pour la version Bash <4:
Nohup some_command > Nohup2.out 2>&1&
Pour une raison quelconque, la réponse ci-dessus n'a pas fonctionné pour moi; Je ne suis pas retourné à l'invite de commande après l'avoir exécutée, comme je m'y attendais avec le &. Au lieu de cela, j'ai simplement essayé avec
Nohup some_command > Nohup2.out&
et ça marche comme je le veux. Laissons ceci ici au cas où quelqu'un d'autre serait dans la même situation. Exécution de Bash 4.3.8 pour référence.
Comme les gestionnaires de fichiers pointent vers des i-nœuds (qui sont stockés indépendamment des noms de fichiers) sur les systèmes Linux/Unix Vous pouvez renommer le nom par défaut Nohup.out
par tout autre nom de fichier à tout moment après le démarrage de Nohup something&
. Alors aussi, on pourrait faire ce qui suit:
$ Nohup something&
$ mv Nohup.out Nohup2.out
$ Nohup something2&
Maintenant, something
ajoute des lignes à Nohup2.out
et something2
à Nohup.out
.
Les méthodes ci-dessus suppriment les données de votre fichier de sortie chaque fois que vous exécutez la commande Nohup.
Pour Ajouter la sortie dans un fichier défini par l'utilisateur, vous pouvez utiliser >>
dans la commande Nohup.
Nohup your_command >> filename.out &
Cette commande ajoutera toutes les sorties dans votre fichier sans supprimer les anciennes données.