Обнаружение остановки с драгоценным камнем Ruby Daemons - PullRequest
5 голосов
/ 12 февраля 2009

Я использую рубин демон драгоценный камень. Хотите знать, как я могу добавить некоторые дополнительные шаги к действию остановки? Я надеялся, что смогу обнаружить остановку, и добавить к ней дополнительный код. Кто-нибудь знает, как мне это сделать?

Ответы [ 3 ]

6 голосов
/ 13 февраля 2009

Глядя на код гема демона, не похоже, что у него есть очевидная точка расширения для этой цели. Тем не менее, мне интересно, могли бы вы (в демонизированном процессе) перехватить сигнал KILL / TERM, отправляемый демонами, когда происходит «остановка» ...?

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

В качестве альтернативы вы можете установить хук at_exit: -

at_exit do
  # execute your extra code here
end
4 голосов
/ 26 февраля 2009

У Раплифа была довольно хорошая статья в их блоге о расширении драгоценного камня Демонов, которое может быть тем, что вы ищете.

2 голосов
/ 31 октября 2012

После прочтения документации Daemons я обнаружил, что есть опция :stop_proc в методе # run

: stop_proc Процедура, которая будет вызываться при демонизации процесса. получает запрос на остановку (работает только для режимов: load и: proc)

Таким образом, вы можете передать его как опцию с помощью # run или # run_proc методов

Оригинальная ссылка на rubyforge

...