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

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 me@example.com "nohup myscript.sh >/dev/null 2>&1 &"

¿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
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.