我在为 fork() 的守护进程管理信号处理中找到了答案,这对我正在做的事情非常有帮助。我不确定如何解决
“因此,您需要在启动时在执行的进程中安装任何信号处理”
我无法控制启动的过程。我有什么办法可以exec
从 fork 的父级强制 ed 上的一些信号句柄?
编辑: {
我正在编写一个监视长时间运行进程的 Perl 模块。代替
system(<long-running cmd>);
你会用
my_system(<ID>, <long-running cmd>);
我为该文件创建了一个锁定文件,并且如果当前正在运行具有匹配 ID 的呼叫,<ID>
则不要让另一个呼叫通过。my_system(<ID>...)
父 fork/execs<long-running cmd>
并在终止时清理锁定文件。我想让孩子自给自足,这样父母就可以退出(或者如果父母得到 a ,孩子可以自己照顾自己kill -9
)。
}