管理fork()守护进程的信号处理

Ya.*_*man 2 perl daemon signal-handling

我想在perl中编写一个强大的守护进程,它将在Linux上运行并遵循这个优秀答案中描述的模板.但是我的情况有一些不同:首先我使用的是Parallel :: ForkManager start() and next ; 紧接着在事件上分叉exec('handle_event.pl')

在这种情况下,我有以下问题:

  1. 我应该在哪里定义我的信号处理程序.我应该在父(守护进程)中定义它们并假设它们将在子进程中继承吗?
  2. 如果我运行exec('handle_event.pl')将处理程序在exec中继承(我知道它们是继承的fork)?
  3. 如果我重新定义一个新的信号处理程序,handle_event.pl这个定义会覆盖父类中定义的那个吗?
  4. 在这种情况下,最佳做法是什么?

谢谢

Jon*_*ler 5

fork时,子进程具有与父进程相同的信号处理程序.执行时,任何被忽略的信号都会被忽略; 任何处理过的信号都会重置回默认处理程序.