2009-02-12 14 views
5

Sto usando il gioiello rubino daemon. Ti chiedo come posso aggiungere alcuni passaggi aggiuntivi per fermare l'azione? Speravo di poter rilevare l'arresto è stato chiamato, e aggiungere un po 'di codice in più ad esso. Qualcuno sa come posso fare questo?Rileva fermata con gemma Ruby Daemons

risposta

6

Guardando il codice della gemma daemon, non sembra che abbia un ovvio punto di estensione per questo scopo. Tuttavia, mi chiedo se (nel processo demonizzato) potresti intrappolare il segnale KILL/TERM che i demoni mandano quando si verifica un "arresto" ...?

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

In alternativa si potrebbe installare un gancio at_exit: -

at_exit do 
    # execute your extra code here 
end 
+0

at_exit ha funzionato bene, grazie mille. – gregf

2

Dopo aver letto Demoni docs ho scoperto che c'è un'opzione :stop_proc nel #run method

: stop_proc Un proc che verrà chiamato quando il processo daemonized riceve una richiesta di fermare (funziona solo per: carico e : modalità proc)

Quindi, in pratica è possibile passare come opzione con le #run o #run_proc metodi

Original answer's link to rubyforge

Problemi correlati