¿Seguirá ejecutándose un script Perl después de que cierre sesión en mi cuenta de usuario?

3

He iniciado una secuencia de comandos Perl desde la terminal que se ejecuta en segundo plano:

>perl myScript.pl &

Si cierro la sesión, ¿esto detendrá la ejecución de mi script?

¡Gracias!

    
pregunta Allen Liu 15.03.2012 - 23:38

2 respuestas

4

Sí, esto es muy fácil de probar. Escriba un script perl que agregue la fecha a un archivo cada minuto y ejecútelo en segundo plano. Cierre la sesión, espere 5 minutos, inicie sesión, verifique las 5 entradas correspondientes a las veces que se desconectó. Para que funcione en el futuro (demasiado tarde si ya se está ejecutando) use nohup como se explica en otra respuesta. Puede poner en segundo plano una secuencia de comandos de primer plano después de iniciarla (CTRL-Z), pero no puede hacer nada en la ejecución

    
respondido por el stuffe 15.03.2012 - 23:39
6

Además de la respuesta de @ stuffe, si ha iniciado sesión a través de ssh y ejecuta su comando, morirá cuando cierre la conexión. Por lo tanto, si estuviera en casa y ssh 'ed en su estación de trabajo de oficina y ejecutara su comando perl myScript.pl & , moriría cuando exit ' ed de la conexión ssh .

Para evitar este problema, querrá usar el comando nohup , que se remonta a los días del teletipo y significa "no colgar". En esencia, el comando ignora el POSIX HUP (colgar) señal. Se utiliza como:

nohup perl myScript.pl &

Esto continuará ejecutándose en la estación de trabajo de su oficina incluso después de que se haya desconectado / desconectado de la máquina de su casa.

    
respondido por el cm2 16.03.2012 - 00:53

Lea otras preguntas en las etiquetas