É possível que o nohup grave a saída no arquivo nohup.out AND na tela / terminal?

23

Eu estou usando o bashshell. Uso frequentemente nohuppara garantir que meus processos não sejam parados quando fecho o shell / terminal que os iniciou. Eu uso uma sintaxe como:

nohup myprocess

Ao iniciar, nohuptransmite a mensagem:

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

Então, nohupnão dá mais saída para a tela; está tudo escrito para nohup.out.

Freqüentemente, porém, eu gostaria de monitorar o progresso do meu cálculo. Posso fazer isso lendo nohup.outusando vior tail, mas isso pode levar muito tempo, especialmente quando meus cálculos levam várias horas.

Existe alguma maneira de imprimir a saída para ambos nohup.out (no caso de eu perder a conexão com a Internet e, portanto, o terminal que iniciou o processo está fechado) e para a tela? Obrigado pelo seu tempo.

Andrew
fonte
3
Você já pensou em usar screenou em tmuxvez de nohup?
Derobert
@derobert Obrigado. Eu tenho screenno meu sistema, mas nunca o usei. Eu não tenho tmuxno meu sistema, mas posso tentar obtê-lo.
Andrew
2
Basta iniciar screen/ tmuxentre fazer login e iniciar myprocess. Em seguida, separar-lo com prefix, d. screeno prefixo é Ctrl-A, enquanto tmuxo prefixo é Ctrl-B. Você pode sair, mas enquanto a máquina permanecer em funcionamento, sua screen/ tmuxsessão também. Na próxima vez que você fizer login, poderá reconectar o screen/ tmuxshell, via screen -rou tmux attach.
Jw013

Respostas:

20

Você pode correr

nohup yourprocess & tail -f nohup.out
choroba
fonte
tail -f é legal, infelizmente mina deixa de exibir caracteres de controle corretamente
Adam Hunyadi
Se você deseja alterar o nohup.out para outra coisa, diga run.log e siga-o, use nohup myprocess> run.log 2> & 1 & tail -f run.log
Prajwel
16

Prova.

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