如何检测我的进程被杀?

时间:2013-06-06 10:11:19

标签: c linux

我想检测程序的kill信号,以便在离开程序之前执行一些C指令。我的程序在linux上运行

有可能吗?如果是,我该怎么做?

3 个答案:

答案 0 :(得分:5)

您可以使用sigaction()注册signal handler。请注意,您无法处理SIGKILLSIGSTOP

答案 1 :(得分:1)

不,SIGKILL无法处理,也许你想要赶上CTRL + C,然后:

#include <stdio.h>
#include <signal.h>

volatile sig_atomic_t stop;

void
inthand(int signum)
{
    stop = 1;
}

int
main(int argc, char **argv)
{
    signal(SIGINT, inthand);

    while (!stop)
        printf("a");

    printf("exiting safely\n");

    return 0;
}

会做的伎俩

答案 2 :(得分:-1)

如果SIGKILL或SIGTERM被发送到您的过程,您无法屏蔽或忽略该信号。您可以处理和掩盖它的其他信号。

相关问题