24 votos

Cómo ejecutar una secuencia de comandos a través de SSH que no termina cuando cierro la conexión?

Necesito ejecutar la secuencia de comandos, que tarda mucho tiempo en ejecutarse, o yo solo quiero que correr para siempre. Yo simplemente no puede SSH a mi máquina, porque cuando desconecto deja de funcionar.

Hay alguna forma de ejecutar la secuencia de comandos que no depende de la cáscara que lo empezó?

Estoy usando Ubuntu 9.04.

32voto

Kyle Brandt Puntos 50907

Puede ejecutar el comando nohup comando antes de que. También se puede ejecutar en 'pantalla', lo que permitirá que usted vuelva a colocar el terminal.

Por ejemplo:

ssh mySever 'nohup bash myscript.sh'

O simplemente ssh y ejecutar el nohup comando. Se debe seguir funcionando incluso cuando se desconecte. Esto es debido a que el nohup interceptará la SIGHUP singal (hangup).

La pantalla es un poco más complicado, pero para el 20 minutos es posible que te lleve a aprender los conceptos básicos, es una de las herramientas más útiles que hay. Aquí hay un tutorial.

10voto

m0j0 Puntos 181

Yo siempre uso nohup. Si me interesa la salida, me redirigir a un archivo de registro, de lo contrario enviar a /dev/null.

Ejemplo:

nohup scp file.tar.gz root@someserver:/var/tmp > /dev/null 2>&1 &

Que lo pone en el fondo, con salida va a /dev/null, y es inmune a la señal HUP si la sesión. También puede "ignorar" el trabajo con ciertas conchas (como bash), de modo que no está conectado a la sesión.

disown %1

8voto

Disco Puntos 340

Para instalar la pantalla : apt-get install screen

A continuación, inicie utilizando simplemente : screen

Y man screen para obtener la clave de enlace.

2voto

benjismith Puntos 8739

Mientras está conectado a un servidor, puede ejecutar una secuencia de comandos en modo separado con el siguiente comando:

nohup script >script.out 2>script.err &

Más tarde, cuando vuelve a iniciar la sesión, puede comprobar la secuencia de comandos.para cualquier salida, y la secuencia de comandos.err para los mensajes de error. Si desea que la salida y los mensajes de error en el mismo archivo, a continuación, hacer:

nohup script >script.out 2>&1 &

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X