向挂起的进程发送 SIGTERM

向挂起的进程发送 SIGTERM

我有 2 个用 C 编写的进程,我将调用它们‘父母’'孩子'。父级创建子级,子级进入一个循环,在其中执行一些代码,然后引发SIGSTOP。如果达到一定条件,则家长需要送孩子SIGTERM,否则SIGCONT

如何SIGTERM在暂停期间发送它并获得我想要的结果?如果简单地发送它SIGCONTSIGTERM我担心孩子会在发送SIGSTOP之前到达SIGTERM,而且我还认为这两个信号相继发出会互相干扰。

答案1

SIGKILL如果您有一个进程处于挂起状态,则在继续运行之前,它不会对任何信号(除了 )执行操作。待处理信号将在进程中排队。

因此,根据您的情况,您需要发送:

  1. SIGTERM进而SIGCONT
  2. SIGCONT

当然这可以简化为

if (condition) { send SIGTERM }
send SIGCONT

相关内容