#include <iostream>
#include <signal.h>
using namespace std;
void func(int a)
{
cout<<"ctrl c"<<endl;
}
void func2(int a)
{
cout<<"kill"<<endl;
}
void func3(int a)
{
cout<<"kill trem"<<endl;
}
int main()
{
signal(SIGINT,func);
signal(SIGKILL,func2);
signal(SIGTERM,func3);
while(1);
return 0;
}
编译后运行,开启另一个bash。
可见kill命令触发SIGTERM信号,SIGTERM信号默认执行kill命令。
执行kill -9命令
直接已杀死 ,可见SIGKILL信号不可以被捕获,这也是kill -9能杀死所有进程的原因,但是僵尸进程和处于核心态的进程除外。