nohup no mostrará el siguiente mensaje en la sesión SSH

Aug 20 2020

Supongamos que estoy conectado a través de SSH en un sistema Ubuntu remoto. Quiero ejecutar un script allí usando nohupen caso de posibles caídas de conexión y redirigir su registro a un archivo. El comando que ejecuto es

nohup bash myscript.sh > log.txt &

Luego, el terminal imprime el PID del script y el mensaje:

nohup ignorando la entrada y redireccionando stderr a stdout

El cursor se congela allí y no puedo ejecutar otros comandos a menos que salga de la sesión SSH con Ctrl+ Dy vuelva a iniciar sesión. Preferiría que la sesión SSH permanezca abierta y continúe con el siguiente indicador de terminal sin la necesidad de volver a iniciar sesión. ¿Hay alguna forma de lograrlo?

Respuestas

1 roaima Aug 21 2020 at 03:39

Este comando se ejecuta en segundo plano como era de esperar. Sin embargo, en este caso particular, hay una condición de carrera en la que el mensaje de salida se escribe fraccionalmente después del indicador de shell.

El resultado visual es que el indicador de shell precede al nohupmensaje o que se sobrescribe por completo.

El resultado práctico es que debido a que el shell ha escrito su indicador, está listo para el siguiente comando. Puede presionar Enter para generar un nuevo mensaje, o simplemente escribir el siguiente comando de todos modos.