Nohup sobre ssh no volverá

11

Estoy tratando de hacer

[me@myPc]$ ssh me@server "nohup myBashScript.sh &"

Mi objetivo es iniciar el proceso en el servidor y luego regresar de inmediato.

No funciona: el trabajo se inicia en el servidor, pero aún obtengo el resultado en myPc y bash espera a que finalice antes de pedirme otro comando.

Por qué ? ¡No se supone que debe hacerlo! ¿Alguna forma de evitar eso?

  • myPc es RHEL6.2
  • servidor es ubuntu 10.04y
  • ambas carreras openssh
usuario1219721
fuente

Respuestas:

12

Mientras la entrada o la salida estén abiertas, ssh mantendrá la conexión abierta. Para resolver esto, asegúrese de que la entrada y la salida no estén abiertas.

Por ejemplo, use ssh -ny redirija su salida:

ssh -n [email protected] "nohup myscript.sh >/dev/null 2>&1 &"
Michael Hampton
fuente
¿Qué pasa si todavía quiero myscript.shdarme salida, pero la sesión ssh aún termina después de que se completa el script? En mi caso, el script en sí comienza el proceso nohup, luego regresa. Tenía la impresión de que eso ssh -Tme ayudaría a hacer eso.
Gauthier
@Gauthier Luego solo ejecuta el script sin nohup.
Michael Hampton
Hago. El script inicia otros comandos con nohup y &, luego termina. Pero ssh no regresa. Los comandos llamados en el script redirigen stdout a archivos. Oh, pero no stderr y stdin, ¿podría ser por qué?
Gauthier
¡Ahí tienes! La entrada y la salida deben ser redirigidas.
Michael Hampton
Lo que no entiendo es que si realmente inicio sesión y obtengo un tty, inicio el script que inicia el nohup y los comandos, entonces se me permite cerrar sesión desde la sesión ssh. No se queja de que hay entradas y salidas abiertas. ¿No es eso lo que ssh -tse supone que debe imitar?
Gauthier