首页 > 系统服务 > 详细

利用信号处理技术消灭僵尸进程;

时间:2021-02-09 18:07:55      阅读:20      评论:0      收藏:0      [点我收藏+]

//利用信号处理技术消灭僵尸进程;
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <sys/types.h>

void read_childproc(int sig)
{
int status;
pid_t id=waitpid(-1,&status,WNOHANG);
if(WIFEXITED(status))
{
printf("Removed proc id:%d\n",id);
printf("child send:%d\n",WEXITSTATUS(status));
}
}

int main(int argc, char *argv[])
{
pid_t pid;
struct sigaction act;
act.sa_handler=read_childproc;
sigemptyset(&act.sa_mask);
act.sa_flags=0;
sigaction(SIGCHLD,&act,0);

pid=fork();

if(pid==0)/*子进程执行区域*/
{
puts("Hi! I‘m child process!!");
sleep(10);
return 12;
}

else{/*父进程执行区域*/
printf("Child proc id:%d\n",pid);
pid=fork();
if(pid==0)
{
puts("Hi ! I‘m child process");
sleep(10);
exit(24);
}
else
{
int i;
printf("Child proc id:%d\n",pid);
for(i=0;i<5;i++)
{
puts("wait....");
sleep(5);
}
}
}
return 0;
}

技术分享图片

 

利用信号处理技术消灭僵尸进程;

原文:https://www.cnblogs.com/shiheyuanfang/p/14393339.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!