-SIGCONT不会继续暂停进程?

时间:2012-01-12 05:21:53

标签: c command-line signals

从另一个终端运行kill -SIGCONT pid后,以下过程无法继续。

#include <stdio.h>

int main(int argc, char *argv[])
{
    printf("paused\n");
    pause();
    printf("continue\n");

    return 0;
}

我希望程序在发送信号并打印“继续”后继续。为什么这不能按预期工作?

1 个答案:

答案 0 :(得分:4)

pause()记录在

  

使调用进程(或线程)休眠,直到传递的信号终止进程或原因          调用信号捕捉功能。

但是SIGCONT只会继续之前由SIGSTOP或SIGTSTP停止的进程。

所以,您可能想尝试:

 kill(getpid(), SIGSTOP);

而不是pause()

另外,您可能需要查看sigsuspend()