您的位置:首页 > 其它

SIGKILL 和 SIGTERM

2011-08-04 14:29 417 查看
SIGKILL是不能屏蔽的,一般用SIGTERM。

另外-1表示的是相同uid的进程,但这样会有副作用。

0表示是相同进程组的进程,包括父进程自己。

可以在fork了所有的子进程之后,

用signal(SIGTERM,SIG_IGN)使父进程忽略SIGTERM信号。

int kill(pid_t pid, int sig);

1. pid>0时,pid是信号欲送往的进程的标识。

2. pid=0时,信号送往与调用kill()的进程属同一个使用组的进程

3. pid=-1时,信号将送往所有调用进程有权给其发送信号的进程,除了进程1(init)。

4. pid<-1时,信号将送往以-pid为组标识的进程。

pid = fork();

if (pid == -1)

{

fprintf(stderr, "Fork error MsgQueueDeal(1)!!!\n");

signal(SIGTERM, SIG_IGN);//忽略(SIG_IGN)程序结束(SIGTERM:terminate)信号

kill(0, SIGTERM);/*相同进程组的进程,包括父进程自己。*/

close(sock_listen);

exit(-1);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: