当孩子被送到SIGCONT时,如何在父进程中收到通知?

时间:2018-01-28 13:29:34

标签: c wait daemon child-process

我正在开发一个taskmaster,非常像supervisor:它从配置文件运行多个程序,然后我可以停止/重启/记录有关这些程序的信息。

fork()然后execve()(丢弃程序的输出)。在父进程中,我听SIGCHLD信号。

问题是在OSX上,SIGCHLD不是在SIGCONT上发送的,而在Ubuntu上则发生。

那么,是否有一种可移植的方式在主进程中通知孩子已被发送SIGCONT?当孩子有SIGCONTinued时接收信号是完美的。

我可以每秒运行一个单独的线程和waitpid() WUNTRACED,但我需要准确的信息(例如,我需要记录进程的运行时间)。

我可以在我的taskmaster中解决一些问题,使其以某种方式工作,但如果该程序在我的程序之外发送SIGCONT,我通常不会收到通知。

手册引用:

  

当子进程发送时,SIGCHLD信号被发送到进程   中断后终止,中断或恢复。

enter image description here

0 个答案:

没有答案