当前位置:  技术问答>linux和unix

【急】 程序在IBM AIX 4.3下面跑时出好多僵尸进程,咋办呢?

    来源: 互联网  发布时间:2015-06-07

    本文导语:  程序里面只是定时用popen()去产生新的进程,从未直接调用fork(),在RedHat 7.2/8.0和Solaris 2.8上跑没问题,但是在AIX 4.3下面跑就会随机地出现僵尸进程(就是进程名为“[]”的那种)。 程序是在shell命令行用&来后台运...

程序里面只是定时用popen()去产生新的进程,从未直接调用fork(),在RedHat 7.2/8.0和Solaris 2.8上跑没问题,但是在AIX 4.3下面跑就会随机地出现僵尸进程(就是进程名为“[]”的那种)。

程序是在shell命令行用&来后台运行的。已按如下方式处理了SIGCLD信号:
void sig_child(int signo)
{
while (waitpid(-1, NULL, WNOHANG) > 0)
{
}
signal(SIGCHLD, sig_child);
}

|
1.现在的信号好像是SIGCHLD,SIGCLD是老的信号~~
2.你可以用sigaction来禁止僵尸进程产生,代码如下:
struct sigaction act;
act.sa_handler = SIG_IGN;
sigemptyset(&act.sa_mask);
act.sa_flag = SA_NOCLDWAIT;
sigaction(SIGCHLD,act,NULL);

|
调用完popen()后再调用pclose()就行了,无需你自己去等待子进程。

|
你用signal(SIGCLD,SIG_IGN)试一下!

|
这应该是你上一个进程产生的僵尸,是不是你上一个进程没有回收信号呀

    
 
 

您可能感兴趣的文章:

  • 请教:Linux下编译c代码,运行程序时出现undefined symbol exp
  • java/j2ee iis7站长之家
  • 在运行一个应用程序时出的问题,请指教,急!!
  • 运行java程序时出现 警告:编码 UTF8 的不可映射字符
  • 弱弱的问:编译一小程序时加载arch时出现的一个小问题
  • 连接数据库时出现[Message][ODBC 驱动程序 管理器]非法的描述器索引。是什么问题?
  • 用Makefile编译程序时出现的问题?
  • SOS ,在UNIX下编译C++程序时出现链接错误:未下义的符号,但函数库里有这些函数,不知道为什么?
  • 编译程序时出现[Message][ODBC 驱动程序 管理器]非法的描述器索引。是什么问题??
  • 发布程序时出现“类型ASP.global_asax同时存在于...”错误的解决办法
  • 在linux下编译程序,在程序结束时出现segmentation fault..实在想不通,求教高手!!
  • 64位系统上编译运行32位程序,运行时出现Accessing a corrupted shared library
  • 比较详细的完美解决安装sql2000时出现以前的某个程序安装已在安装计算机上创建挂起的文件操作。 原创
  • [高分求助]小弟在编第一个驱动程序时出现了若干辣手问题,请高手指教!
  • 用jdbc对access数据库进行操作时出现异常:java.sql.SQLException: [Microsoft][ODBC 驱动程序 管理器] 非法的游标状态
  • 求助:安装编译Apache程序时出现怪问题?CentOS
  • 为arm平台写了个使用sdl的测试程序衔接时出现skipping incompatible然后就提示cannot find -lSDL了
  • 高分求救!我在uclinux上运行应用程序时出现内存分配错误,不知如何解决,解决者高分!!
  • GTK程序在退出时出现free错误
  • 在HP-UX上编译的C程序,链接时出现下面的错误,有谁遇到过类似现象么?
  • 应用程序chinput开机自动启动, 但状态为Defunct的进程(“僵尸”进程), 如何删除?
  • 从定时从A程序调用B程序(B程序运行一下就退出)多次后,出现僵尸进程?如何解决?
  • 如何解决程序自己调用自已后结束进程,并且父进程能真的退出不成为僵尸进程?
  • 写一个后台运行程序,出现僵尸进程
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在程序中启动一个进程(不是线程),如何知道该进程已运行结束
  • 通过c程序写代码怎么查看进程是不是存在了?怎么查看该进程占用的内存是多少?
  • 奇怪:程序一fork子进程时就停住了,似乎根本不能fork子进程啊?
  • shell进程退出,其子进程怎样才能不死,交给init进程管,谢谢,请指点下我写的程序
  • 如何在程序中执行另外一个程序,并且当前进程依然执行?
  • 为什么我在java程序里启动的一个程序在java程序关闭后,该程序的所有进程都关掉了
  • 这个socket程序的服务进程开始服务后,为什么总是两个进程?
  • 怎样编写一段程序,要求调用fork并在子进程中建立一个新的对话期。验证子进程变成了进程组长而且不再有控制终端。
  • 为什么这个程序没有输出?父进程中止后子进程也跟着中止吗?
  • 先 fork 子进程然后 execl 另一个可执行程序, 如何得到这个可执行程序结束的返回值?
  • linux shell关掉后java程序(进程名abc)仍能运行,用ps -ef|grep abc能查到进程名
  • 在程序中如何得到一个进程的状态?(不用ps命令),如何检查一个进程处于D状态(uninterruptible sleep)
  • 如何准确理解“程序”、“进程”、“线程”这三个概念
  • 请问在 linux 下如何使用 execl() 调用另一个多进程的程序?
  • 请问gdb怎么处理带有启动参数的程序和多进程程序?
  • 为什么程序异常后,这个程序监听的端口被转移到其它进程里
  • 关于sco下的多进程程序的问题?
  • help help busy!!! 知道进程的ID号,在程序里如何检查这个进程还在不在?
  • 如何在程序里面得到当前程序的进程 ID 号?
  • 程序推出时,如何杀掉其子进程?
  • 重装服务器后IIS网站错误(应用程序中的服务器错误)
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • windows server2008上PowerBuilder程序系统错误解决方法
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • c语言判断某一年是否为闰年的各种实现程序代码
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • 程序员的八种级别,你属于哪一级?
  • 我的程序是用c写的gtk+程序,有个函数的参数要传给它图片的文件名,但是图片和原程序不在同一目录下怎么办?怎么在程序里指定文件的路径
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.
  • 在docker容器中通过apt-get安装新的程序


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3