linux 子进程僵尸,【转】Linux杀死fork产生的子进程的僵尸进程defunct

69c5a8ac3fa60e0848d784a6dd461da6.png

#include

#include

#include

#include

#include

void sig_child(){

pid_t pid;

int status;

while((pid = waitpid(-1, &status, WNOHANG)) > 0) {}

//Key !!!!!!!! wait or waitpid

return;

}

void nodefunct_sig(){

signal(SIGCHLD,sig_child);//prevent defunct

int child=0;

pid_t status=0;

int i=0;

while(1){

if(child=fork()==0){

childf();

printf("child(%d):I will be exit...pgid=%d\n",getpid(),getpgid(getpid()));//getpgrp()

abort();

char cmd[1024]="";

sprintf(cmd,"kill -9 %d",getpid());

system(cmd);

exit(5);

}else{

printf("Parent(%d):Main process...\n",getpid());

//kill(child,SIGABRT);

system("ps -A|grep a.out");

sleep(3);

}

printf("Parent: waitting child...pgid=%d\n\n",getpgid(getpid()));

//waitpid(child,&status,

}

}

void main(){

nodefunct_sig();

}

69c5a8ac3fa60e0848d784a6dd461da6.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值