如何防止僵尸进程的产生之信号
来源:互联网 发布:cs有网络版本吗 编辑:程序博客网 时间:2024/06/01 23:51
#include<stdio.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<unistd.h>
#include<signal.h>
{
waitpid( so_pid, NULL, 0 );
fprintf(stderr, "父进程[%d]已成功捕捉子进程[%d]退出信号\n", getpid(), so_pid);
return;
}
int main( void )
{
int signo;
if( (so_pid=fork()) < 0 )
{
fprintf(stderr, "main fork err!\n");
return 0;
#include<sys/types.h>
#include<sys/wait.h>
#include<unistd.h>
#include<signal.h>
static pid_t so_pid;
{
waitpid( so_pid, NULL, 0 );
fprintf(stderr, "父进程[%d]已成功捕捉子进程[%d]退出信号\n", getpid(), so_pid);
return;
}
int main( void )
{
int signo;
if( (so_pid=fork()) < 0 )
{
fprintf(stderr, "main fork err!\n");
return 0;
}
else if( so_pid > 0 )
{
signal( SIGCHLD, chld_wait );
fprintf( stderr, "父进程[%d]\n", getpid() );
while( 1 )
{
}
exit( 0 );
}
sleep(2);
fprintf( stderr, "子进程退出[%d]\n", getpid() );
exit(0);
}
运行结果:
父进程[4972]
子进程退出[4973]
父进程[4972]已成功捕捉子进程[4973]退出信号
查看有无僵尸进程:
ps -ef |grep defunct
无僵尸进程
若将signal( SIGCHLD, chld_wait );此行注释掉,
则运行结果:
父进程[4972]
子进程退出[4973]
查看有无僵尸进程:
ps -ef |grep defunct
有僵尸进程产生
1 0
- 如何防止僵尸进程的产生之信号
- 如何防止僵尸进程的产生之fork两次
- 防止僵尸进程的产生
- 僵尸进程如何产生的
- 僵尸进程的产生
- 并发处理时防止产生僵尸进程
- 僵尸进程是如何产生的?怎样避免僵尸进程的产生
- 僵尸进程是如何产生的?怎样避免僵尸进程的产生
- 僵尸进程是如何产生的?怎样避免僵尸进程的产生
- 僵尸进程是如何产生的?怎样避免僵尸进程的产生
- 如何避免产生僵尸进程
- linux僵尸进程产生的原因以及如何避免产生僵尸进程
- linux僵尸进程产生的原因以及如何避免产生僵尸进程
- linux僵尸进程产生的原因以及如何避免产生僵尸进程
- linux僵尸进程产生的原因以及如何避免产生僵尸进程
- linux僵尸进程产生的原因以及如何避免产生僵尸进程
- 僵尸进程,孤儿进程是如何产生
- 僵尸进程的产生原因
- HTML5上传文件(不含进度条):XHR2+FILE+FormData
- JSP编译中的心得,总结
- Unity3D中调用外接摄像头,并保存为图片文件
- 利用DHT网络原理制作bt采集蜘蛛,开源版
- STM32寄存器操作方式学习-时钟配置
- 如何防止僵尸进程的产生之信号
- mkdtemp
- 输入框
- 一个小小的函数(连续删除List中符合条件的一个或多个值)
- left join,inner join,right join,cross join,full join的区别
- 现在公开一个DHT网络爬虫网络爬虫供大家一起交流
- 开源聊天框架
- web项目中使用标签打印机打印条形码及二维码
- C# 日志操作