这可能是一个语法点,但无论如何,只是为了澄清... perldoc on Sys::Syslog状态:
Sys :: Syslog的第三条规则是:程序崩溃,死亡,调用 closelog,日志结束了。
如果'程序'引用了整个内容,我的脚本和Sys :: Syslog包含在内,那是否意味着Sys :: Syslog会对closelog()进行调用?
如果没有,这是否意味着我应该将closelog()
放在END块中?
答案 0 :(得分:1)
Sys :: Syslog 在退出时调用closelog()
。查看https://metacpan.org/source/SAPER/Sys-Syslog-0.33/Syslog.pm中的closelog()
或disconnect_log()
来电。
但是在大多数情况下,在脚本中退出/删除时省略closelog()
是安全的:无论如何,描述符将在进程退出时关闭。
大多数情况表示当Perl解释器在脚本的退出/死亡时终止时,普通脚本的情况。排除是特殊环境,例如mod_perl:如果脚本死亡,进程不会退出。