我在Managing Signal Handling for daemons that fork()中找到了答案,对我正在做的事情非常有帮助。我不知道如何解决Perl:在分支子代中安装信号处理程序,其执行者
“你会因此不需要安装任何的信号处理在execed进程启动时”
我没有在那个启动过程控制向上。有没有办法让我强制从叉子的父母那里得到exec
的某些信号手柄?
编辑: {
我正在写一个Perl模块来监视长时间运行的进程。取而代之的
system(<long-running cmd>);
你会使用
my_system(<ID>, <long-running cmd>);
我创建了一个<ID>
锁定文件,不要让其他my_system(<ID>...)
通过电话,如果有一个当前具有匹配ID运行。
上级分支/管理员<long-running cmd>
并且在终止时清除锁定文件。我想让孩子自给自足,以便父母可以退出(或者如果父母得到kill -9
,孩子可以自己照顾自己)。
}
很好的答案。我希望能有办法以某种方式将处理函数加载到正在运行的程序中......太糟糕了,这是不可能的。另外,lockfile的这个方案几乎可以随时为我的情况工作。唯一的问题是有很多计算机共享一个nfs文件系统。因此,如果从A启动了锁,则B无法查看它是否仍在运行,或者它是否是挂锁文件。 – ajwood 2011-04-02 14:30:27