Kann nohup die Ausgabe sowohl in die Datei nohup.out als auch auf den Bildschirm / das Terminal schreiben?

22

Ich benutze die bashShell. Ich stelle häufig nohupsicher, dass meine Prozesse nicht gestoppt werden, wenn ich die Shell / das Terminal schließe, die / das sie gestartet hat. Ich benutze eine Syntax wie:

nohup myprocess

Beim Start nohupgibt die Nachricht:

nohup: ignoring input and appending output to 'nohup.out'

Dann nohupgibt nicht mehr auf dem Bildschirm ausgegeben; es ist alles geschrieben nohup.out.

Häufig möchte ich jedoch den Fortschritt meiner Berechnung überwachen. Ich kann dies durch Lesen nohup.outmit vioder tun tail, aber dies kann sehr zeitaufwendig sein, insbesondere wenn meine Berechnungen mehrere Stunden dauern.

Gibt es eine Möglichkeit, die Ausgabe sowohl auf dem Bildschirm als auch auf dem Bildschirm zu drucken nohup.out(falls ich die Internetverbindung verliere und somit das Terminal, das den Vorgang gestartet hat, geschlossen wird) ? Vielen Dank für Ihre Zeit.

Andrew
quelle
3
Haben Sie in Betracht gezogen, screenoder tmuxanstelle von nohup?
Derobert
@derobert Danke. Ich habe screenauf meinem System, aber ich habe es nie benutzt. Ich habe noch kein tmuxSystem, aber ich kann versuchen, es zu bekommen.
Andrew
2
Einfach screen/ tmuxzwischen dem Einloggen und dem Starten starten myprocess. Dann lösen sich von ihm mit prefix, d. screenDas Präfix von ist Ctrl-A, während tmuxdas Präfix von ist Ctrl-B. Sie können sich abmelden , aber solange die Maschine bleibt, wird Ihr screen/ tmuxSitzung wird auch. Wenn Sie sich das nächste Mal anmelden, können Sie die screen/ tmuxshell über screen -roder erneut anfügen tmux attach.
JW013

Antworten:

20

Du kannst rennen

nohup yourprocess & tail -f nohup.out
Choroba
quelle
tail -f ist cool, leider mir Steuerzeichen nicht richtig angezeigt
Adam Hunyadi
16

Beweis.

nohup yourprocess 1>&2  | tee nohup.out &
Jhonathan
quelle