¿Es posible que nohup escriba la salida tanto en el archivo nohup.out AND como en la pantalla / terminal?


23

Estoy usando el bashcaparazón. Frecuentemente uso nohuppara asegurarme de que mis procesos no se detengan cuando cierro el shell / terminal que los inició. Yo uso una sintaxis como:

nohup myprocess

Al comenzar, nohupda el mensaje:

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

Entonces, nohupno da más salida a la pantalla; todo está escrito para nohup.out.

Con frecuencia, sin embargo, me gustaría monitorear el progreso de mi cálculo. Puedo hacer esto leyendo nohup.outusando vio tail, pero puede llevar mucho tiempo hacer mucho, especialmente cuando mis cálculos tardan varias horas.

¿Hay alguna forma de que pueda imprimir la salida en ambos nohup.out (en caso de que pierda la conexión a Internet y, por lo tanto, el terminal que inició el proceso esté cerrado) y en la pantalla? Gracias por tu tiempo.


3
¿Has considerado usar screeno en tmuxlugar de nohup?
derobert

@derobert Gracias. Tengo screenen mi sistema, pero nunca lo he usado. No tengo tmuxen mi sistema, pero puedo intentar obtenerlo.
Andrew

2
Simplemente inicie screen/ tmuxentre iniciar sesión y comenzar myprocess. A continuación, extraiga de ella con prefix, d. screenEl prefijo es Ctrl-A, mientras que tmuxel prefijo es Ctrl-B. Puede cerrar sesión, pero mientras la máquina permanezca activa, su screen/ tmuxsesión también lo hará. La próxima vez que inicie sesión, puede volver a conectar el screen/ tmuxshell, a través de screen -ro tmux attach.
jw013

Respuestas:


20

Tu puedes correr

nohup yourprocess & tail -f nohup.out

tail-f es fresco, por desgracia la mía no puede mostrar correctamente los caracteres de control
Adam Hunyadi

Si desea cambiar el nohup.out a otra cosa, diga run.log y luego sígalo, use nohup myprocess> run.log 2> & 1 & tail -f run.log
Prajwel hace

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.