È possibile per nohup scrivere l'output sia sul file nohup.out che sullo schermo / terminale?


23

Sto usando la bashshell. Uso spesso nohupper garantire che i miei processi non vengano arrestati quando chiudo la shell / terminale che li ha avviati. Uso una sintassi come:

nohup myprocess

All'avvio, nohupvisualizza il messaggio:

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

Quindi, nohupnon fornisce più output allo schermo; è tutto scritto per nohup.out.

Spesso, tuttavia, vorrei monitorare l'avanzamento del mio calcolo. Posso farlo leggendo nohup.oututilizzando vio tail, ma ciò può richiedere molto tempo, soprattutto quando i miei calcoli richiedono diverse ore.

Esiste un modo per stampare l'output su entrambi nohup.out (nel caso in cui perdo la connessione a Internet e quindi il terminale che ha avviato il processo è chiuso) e sullo schermo? Grazie per il tuo tempo.


3
Hai pensato di utilizzare screeno tmuxinvece di nohup?
derobert,

@derobert Grazie. Ho screensul mio sistema, ma non l'ho mai usato. Non ho tmuxsul mio sistema, ma posso provare a ottenerlo.
Andrew,

2
Basta avviare screen/ tmuxtra il login e l'avvio myprocess. Poi staccare da esso con prefix, d. screenIl prefisso è Ctrl-A, mentre tmuxil prefisso è Ctrl-B. È possibile disconnettersi ma fino a quando la macchina rimane accesa, lo sarà anche la screen/ tmuxsessione. Al successivo accesso, è possibile ricollegare la screen/ tmuxshell, tramite screen -ro tmux attach.
jw013,

Risposte:


20

Puoi correre

nohup yourprocess & tail -f nohup.out

tail -f è bello, purtroppo il mio non riesce a visualizzare correttamente i personaggi di controllo
Adam Hunyadi,

Se desideri cambiare nohup.out in qualcos'altro, dì run.log, e poi seguilo, usa nohup myprocess> run.log 2> & 1 & tail -f run.log
Prajwel

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.