2012-06-25 10 views
6

Me conecto a nuestro servidor de producción Ubuntu usando PuTTy.Cómo mantener el comando de carriles desde la consola de Rails ejecutándose después de cerrar el cliente SSH (PuTTy)

Quiero reindexar un modelo específico utilizando Solr. Quiero ejecutar el comando reindex desde Rails Console, es decir, Modelname.reindex (ya que parece que se ejecuta más rápido que la tarea de rake).

Sin embargo, estamos viendo un gran volumen de datos y se espera esta indexación tomar unas horas

Quiero poder iniciar esta tarea en la consola de rieles y debería continuar ejecutándose incluso si salgo de PuTTy. ¿Como hacer esto?

Linux: Prevent a background process from being stopped after closing SSH client sugiere nohup, pero no veo si/cómo se puede usar con la consola de rieles.

Respuesta

9

Uso sudo apt-get install screen instalar screen. Luego ejecútelo usando screen. Ahora tiene una ventana de consola separada que puede separarse usando Ctrl + A, luego D. La masilla de cierre no terminará su screen -sesión. Si vuelve a iniciar sesión en cualquier momento posterior, puede reanudar las sesiones usando screen -r.

En resumen:

> sudo apt-get install screen 
> screen 
# pops up a new shell 
> rails c 
# run your reindex operation 
# press Ctrl + A, then D 
> exit 
# putty closes 

# reconnect using putty 
> screen -r 
# you should be back in your rails console 
+0

¡Qué bueno es esto! ¡Gracias! – Stanley

+0

No se pueden decir suficientes palabras buenas sobre 'screen'. Eche un vistazo a la 'pantalla de hombre' cuando tenga un segundo y vea todas las cosas que puede hacer con él. –

0

Lo que puede hacer es usar screen o tmux para mantener su sesión abierta en el servidor.

Si simplemente escribe screen, se iniciará un multiplexor de terminal que mantendrá la sesión incluso si desconecta la consola.

Una vez que vuelva a conectarse a la consola se puede obtener la sesión posterior usando screen -dr

0

Debe utilizar algo así como tmux o pantalla y desprenderse de la sesión.

Cuestiones relacionadas