Mit dem Befehl $ nohup ...
starte ich eine Anwendung im Hintergrund, um anschließend das Terminalfenster zu schließen.
Bei der Ausführung wird die Datei erstellt ~/nohup.out
.
Beispiel:
orschiro@x230:~$ nohup /bin/bash -c "sleep 15 && python3 /home/orschiro/bin/show_state.py"
nohup: ignoring input and appending output to 'nohup.out'
Wie kann ich das nohup
Erstellen verhindern nohup.out
?
command-line
nohup
Orschiro
quelle
quelle
byobu
. :)byobu
, was Sie möchten, dann drückenF6
und fertig. Sie können darauf zurückkommen, indem Siebyobu
erneut ausführen .Antworten:
Sie können die Ausgabe an eine beliebige Stelle umleiten, zum Beispiel:
Die Umleitung verhindert, dass die Standardausgabedatei
nohup.out
erstellt wird./dev/null
ist in Vergessenheit geraten, also wenn Sie die Daten überhaupt nicht wollen, senden Sie sie dorthin.In bash können Sie abkürzen
>/dev/null 2>&1
zu&>/dev/null
Für Programme, die ich oft benutze, erstelle ich beispielsweise einen Alias (und füge ihn meinem hinzu
.bashrc
)Jetzt muss ich nur noch tippen
show_state
quelle
show_state () { /bin/bash -c "$@" &>/dev/null }
? (Warnung: Schlechte Syntax und funktioniert wahrscheinlich nicht! Es ist nur ein Beispiel!). Ein Trottel: Warum,show_state
wenn Sie die Ausgabe von wegwerfennohup
?.py
Datei wurde leider nicht angezeigt. Und ja, eine Funktion macht mehr Spaß. Ich habe diese schlecht geschriebene Funktion auf einem Debian - Desktop:shutup() { source "$@" >/dev/null 2>&1 & }
. Und es funktioniert. Vielleicht könntest du etwas Ähnliches vorschlagen, aber viel besser?&>
funktioniert (und meiner Meinung nach sieht es aus wie Hintergrund plus stdout Umleitung). Ich habe es immer gelernt als>&
. Ist es Standard?