2009-02-12 19 views
5

Estoy usando la gema de ruby ​​daemon. ¿Te preguntas cómo puedo agregar algunos pasos adicionales para detener la acción? Esperaba poder detectar la detención y agregarle un código adicional. Alguien sabe cómo puedo lograr esto?Detectar parada con la gema Ruby Daemons

Respuesta

6

Al mirar el código de la gema daemon, no parece que tenga un punto de extensión obvio para este propósito. Sin embargo, me pregunto si (en el proceso diametralizado) podrías atrapar la señal KILL/TERM que los daemons envían cuando ocurre una 'detención' ...?

trap("TERM") do 
    # execute your extra code here 
end 

alternativa usted puede instalar un gancho at_exit: -

at_exit do 
    # execute your extra code here 
end 
+0

at_exit funcionó muy bien, muchas gracias. – gregf

2

Después de leer Dæmons docs he encontrado que hay una opción de :stop_proc en el #run method

: stop_proc un proc que se llamará cuando el proceso endemoniada recibe una solicitud de detención (sólo funciona para: carga y : modo proc)

Así que, básicamente, se puede pasar como una opción con los métodos #run o #run_proc

Original answer's link to rubyforge

Cuestiones relacionadas