守护进程关闭和清理

时间:2015-05-01 02:33:02

标签: perl daemon signal-handling

我有一个小的Perl守护进程,我正在重构,我有一个最好的练习题。

守护程序在启动时写出一个pid文件,并在关闭时将其删除。

您是否建议将pid文件删除代码放在信号处理程序中,如下所示:

$SIG{__DIE__} = \&cleanup;

或者我应该将该代码放在END{}块中吗?

1 个答案:

答案 0 :(得分:4)

SigDie仅建议用于调试目的,坚持使用END和DESTROY块。部分原因是SigDie可能被覆盖,有时出乎意料地被包含的库或子进行覆盖,其中多个END块将以相反的顺序执行。

以下是您可能遇到的问题的示例;

Charater