关于防止僵尸进程的问题
最近在linux下写一个程序,需要不断创建子进程调用脚本,可是经常会产生僵尸进程。通过网上查询,找到了解决办法。即声明一个函数:
void xx_fork(int signo)
{
pid_t pid;
int stat;
pid = waitpid(-1,&stat, 1);
printf("退出进程号为:%d 系统新增进程序。\n",pid);
return;
}
然后在调用子进程之前执行
signal(SIGCHLD, xx_fork);
于是就有了下面的问题,假如我有10个创建子进程的函数,我是只需创建一个void xx_fork(int signo)函数,然后在调用子进程(10个)之前调用signal(SIGCHLD, xx_fork)即可;还是说要对应10个函数创建10个类似void xxxn_fork(int signo)的函数(n=1~10),然后对应调用signal(SIGCHLD, xxxn_fork)?
void xx_fork(int signo)
{
pid_t pid;
int stat;
pid = waitpid(-1,&stat, 1);
printf("退出进程号为:%d 系统新增进程序。\n",pid);
return;
}
然后在调用子进程之前执行
signal(SIGCHLD, xx_fork);
于是就有了下面的问题,假如我有10个创建子进程的函数,我是只需创建一个void xx_fork(int signo)函数,然后在调用子进程(10个)之前调用signal(SIGCHLD, xx_fork)即可;还是说要对应10个函数创建10个类似void xxxn_fork(int signo)的函数(n=1~10),然后对应调用signal(SIGCHLD, xxxn_fork)?
...全文
相关推荐
PHP多进程编程之僵尸进程问题的理解
主要介绍了PHP多进程编程之僵尸进程问题的理解的相关资料,希望通过本文能帮助到大家,让大家掌握这部分内容,需要的朋友可以参考下
僵尸进程介绍以及防范
介绍什么是僵尸进程,以及如何处理僵尸进程
什么是PHP7中的孤儿进程与僵尸进程
在本篇内容里小编给大家整理了关于PHP7之孤儿进程与僵尸进程的知识点和概念,需要的朋友们学习参考下。
php多进程并发编程防止出现僵尸进程的方法分析
本文实例讲述了php多进程并发编程防止出现僵尸进程的方法。分享给大家供大家参考,具体如下: 对于用PHP进行多进程并发编程,不可避免要遇到僵尸进程的问题。 僵尸进程是指的父进程已经退出,而该进程dead之后没有进程接受,就成为僵尸进程(zombie)进程。任何进程在退出前(使用exit退出) 都会变成僵尸进程(用于保存进程的状态等信息),然后由init进程接管。如果不及时回收僵尸进程,那么它在系统中就会占用一个进程表项,如果这种僵尸进程过多,最后系统就没有可以用的进程表项,于是也无法再运行其它的程序。 方法一: 父进程通过pcntl_wait和pcntl_waitpid等函数等待子进程结束
Linux僵尸进程模拟[可运行源码]
本文详细介绍了Linux系统中僵尸进程的概念及其产生条件。僵尸进程是指子进程退出后,父进程未读取其退出状态代码,导致子进程以终止状态保存在进程表中。文章通过C语言代码模拟了僵尸进程的产生过程,并展示了测试结果。此外,还分析了僵尸进程的危害,如占用内存资源等,并提出了避免僵尸进程的方法,即使用wait()系统调用让父进程在子进程死亡时做出回应。


