我有一个小的Perl守护进程,我正在重构,我有一个最好的练习题。
守护程序在启动时写出一个pid文件,并在关闭时将其删除。
您是否建议将pid文件删除代码放在信号处理程序中,如下所示:
$SIG{__DIE__} = \&cleanup;
或者我应该将该代码放在END{}
块中吗?
答案 0 :(得分:4)
SigDie仅建议用于调试目的,坚持使用END和DESTROY块。部分原因是SigDie可能被覆盖,有时出乎意料地被包含的库或子进行覆盖,其中多个END块将以相反的顺序执行。
以下是您可能遇到的问题的示例;
Charater