5

我正在使用 ruby​​ 守护进程gem。想知道如何在停止操作中添加一些额外的步骤?希望我能检测到停止被调用,并添加一些额外的代码。有谁知道我怎么能做到这一点?

4

3 回答 3

6

查看守护程序 gem 代码,它看起来并没有为此目的提供明显的扩展点。但是,我想知道(在守护进程中)您是否可以捕获守护进程在“停止”发生时发送的 KILL/TERM 信号......?

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

或者,您可以安装 at_exit 挂钩:-

at_exit do
  # execute your extra code here
end
于 2009-02-12T22:59:36.400 回答
4

Rapleaf在他们的博客上有一篇非常好的文章,关于 Daemons gem 的扩展,这可能是您正在寻找的。

于 2009-02-25T21:24:03.220 回答
2

阅读 Daemons 文档后,我发现#run 方法:stop_proc中有一个选项

:stop_proc 守护进程收到停止请求时将调用的 proc(仅适用于 :load 和 :proc 模式)

所以基本上你可以将它作为一个选项传递给#run#run_proc方法

原始答案的链接到 ruby​​forge

于 2012-10-31T08:53:44.433 回答