Wenn ich nohup some_command &
ausführe, geht die Ausgabe in nohup.out
; man nohup
sagt, ich solle mir info nohup
ansehen, was wiederum sagt:
Wenn die Standardausgabe ein Terminal ist, wird der command's standard output is appended an die Datei 'nohup.out'; wenn diese nicht geschrieben werden kann, wird sie angehängt an die Datei '$HOME/nohup.out'; und wenn die nicht beschrieben werden kann, wird der Befehl nicht ausgeführt.
Aber wenn ich bereits einen Befehl mit nohup
habe, dessen Ausgabe nach /nohup.out
geht, und ich einen weiteren nohup
-Befehl ausführen möchte, kann ich dann die Ausgabe nach nohup2.out
umleiten?
nohup some_command &> nohup2.out&
und voila.
Ältere Syntax für Bash-Version < 4:
nohup some_command > nohup2.out 2>&1&
Aus irgendeinem Grund hat die obige Antwort bei mir nicht funktioniert; ich bin nicht zur Eingabeaufforderung zurückgekehrt, wie ich es mit dem abschließenden & erwartet hatte. Stattdessen habe ich es einfach mit
nohup some_command > nohup2.out&
und es funktioniert genau so, wie ich es will. Ich lasse dies hier, falls jemand anderes in der gleichen Situation ist. Running Bash 4.3.8 als Referenz.
Da die File-Handler auf Linux/Unix-Systemen auf i-Nodes verweisen (die unabhängig von Dateinamen gespeichert werden), können Sie die Standarddatei nohup.out
jederzeit nach dem Start von nohup something&
in einen beliebigen anderen Dateinamen umbenennen. Man könnte also auch folgendes tun:
$ nohup something&
$ mv nohup.out nohup2.out
$ nohup something2&
Jetzt fügt irgendwas
Zeilen zu nohup2.out
und irgendwas2
zu nohup.out
hinzu.