我想在perl中编写一个健壮的守护进程,它将在Linux上运行,并遵循in this excellent answer描述的模板。不过,我的情况有一些差异:首先我使用Parallel::ForkManagerstart() and next
;到餐桌上,紧接着exec('handle_event.pl')
管理fork()的守护进程的信号处理
在这种情况下的事件,我有以下问题:
- 我应该在哪里定义我的信号处理程序。我应该在父进程(守护进程)中定义它们并假定它们将在子进程中被继承吗?
- 如果我运行
exec('handle_event.pl')
处理程序会通过exec继承(我知道它们是通过fork
继承的)? - 如果我在
handle_event.pl
中重新定义一个新的信号处理程序,这个定义是否会覆盖父定义的定义? - 这种情况下的最佳做法是什么?
谢谢
谢谢。这是非常有帮助和清晰的 –
并非所有的信号都将被设置为默认值,如果信号被忽略,它将在exec后仍然被忽略。 – gorilla
@gorilla:谢谢!答复修正。 – JaakkoK