我有 2 个用 C 编写的进程,我将调用它们‘父母’和'孩子'。父级创建子级,子级进入一个循环,在其中执行一些代码,然后引发SIGSTOP
。如果达到一定条件,则家长需要送孩子SIGTERM
,否则SIGCONT
。
如何SIGTERM
在暂停期间发送它并获得我想要的结果?如果简单地发送它SIGCONT
,SIGTERM
我担心孩子会在发送SIGSTOP
之前到达SIGTERM
,而且我还认为这两个信号相继发出会互相干扰。
答案1
SIGKILL
如果您有一个进程处于挂起状态,则在继续运行之前,它不会对任何信号(除了 )执行操作。待处理信号将在进程中排队。
因此,根据您的情况,您需要发送:
SIGTERM
进而SIGCONT
SIGCONT
当然这可以简化为
if (condition) { send SIGTERM }
send SIGCONT