2012-04-25 16 views
7

Tengo dos scripts en el entorno de Rails que deben ejecutarse 24/7. Estoy trabajando en un servidor remoto, por lo que necesito iniciar las secuencias de comandos usando ssh, lo que significa que necesito mantener las ventanas de ssh abiertas todo el tiempo.Ejecutar la secuencia de comandos de ruby ​​en el fondo sin usar la pantalla

Estoy buscando una manera simple de ejecutar estos scripts en segundo plano para que no se cancelen tan pronto como cierre la conexión ssh.

No quiero usar screen. Creo que debe haber una forma más simple de manejar esto. ¿No hay?

+1

¿Has mirado a dios y/o monit? – d11wtq

Respuesta

20

Creo que la solución más básica wo ULD ser nohup:

nohup myscript &> /dev/null & 
+0

sí esto es perfecto y podemos redirigir la salida al archivo de registro a través de: nohup ruby ​​myscript.rb> myscript.log & Acabo de probarlo con el script de ruby, y también puede comprobar si se está ejecutando mediante el comando: ps - nombre de usuario fu –

2

Verificar Daemons. Es un conjunto de herramientas para convertir un script en un daemon controlable.

4

Usted puede negarse a una secuencia de comandos:

ruby script.rb &! 

STDOUT/STDERR todavía están unidos a la shell actual, pero el proceso ruby no es un niño de la cáscara más, así no se matará si cierra la terminal.

Cuestiones relacionadas