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

2024-01-07

我想用 perl 编写一个健壮的守护进程,它将在 Linux 上运行,并且遵循所描述的模板在这个优秀的答案中 https://stackoverflow.com/questions/766397/how-can-i-run-a-perl-script-as-a-system-daemon-in-linux。然而,我的情况有一些不同:首先我使用并行::ForkManager http://search.cpan.org/perldoc?Parallel::ForkManager start() and next;立即分叉一个事件exec('handle_event.pl')

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

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

谢谢


当您分叉时,子进程具有与父进程相同的信号处理程序。当您执行时,任何被忽略的信号仍然被忽略;任何已处理的信号都会重置回默认处理程序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

管理 fork() 守护进程的信号处理 的相关文章

随机推荐