SIGKILL 和 SIGTERM

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);

}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值