linux defunct 进程,Defunct进程(死进程)
Defunct进程(死进程)
IBM网站有关Defunct进程(死进程)的问题确定
内容提要:
本文介绍了为什么会产生defunct进程,如何确定引起defunct进程的原因,以及当需要进一步确定问题时应提供何种信息给软件供应商。
说明:
1.Defunct进程的产生
在AIX操作系统实施的进程结构中,每一个进程都有一个父进程。当一个进程结束时会通知它的父进程,从而该进程的父进程会收集该进程的状态信息。若父进程在一定的时间内无法收集到状态信息,则系统中就会残留一个defunct进程。
因为defunct进程是已经停止的,所以使用杀死进程的方法来杀defunct进程是无效的。defunct进程不使用CPU或硬盘等系统资源,而只使用极少量的内存用于存储退出状态和资源使用信息。
#who -d可以看到好多
# who -d
. . Aug 10 21:33 . 5480 id=load64b term=0 exit=0
. . Aug 10 21:33 . 15494 id=rc term=0 exit=0
. . Aug 10 21:33 . 15496 id=fbcheck term=0 exit=0
. . Aug 10 21:33 . 16258 id=harc term=0 exit=0
. . Aug 10 21:33 . 16260 id=rcnsr term=0 exit=0
. . Aug 10 21:33 . 17584 id=piobe term=0 exit=0
. . Aug 10 21:33 . 18588 id=logsymp term=0 exit=0
. . Aug 10 21:33 . 17076 id=pmd term=0 exit=0
. . Aug 10 21:33 . 17078 id=httpdli term=0 exit=0
. . Aug 10 21:33 . 18326 id=diagd term=0 exit=0
. . Aug 10 21:33 . 20384 id=rcpkcs1 term=0 exit=0
. . Aug 10 21:34 . 20386 id=imnss term=0 exit=0
. . Aug 10 21:34 . 20132 id=imqss term=0 exit=0
. . Aug 10 21:33 . 21430 id=l2 term=0 exit=0
. . Aug 10 21:34 . 19352 id=i4ls term=0 exit=0
. . Aug 10 21:34 . 19354 id=hacmp60 term=0 exit=0
. . Aug 10 21:35 . 25304 id=rctcpip term=0 exit=0
. . Aug 10 21:35 . 24900 id=rcnfs term=0 exit=0
. . Aug 10 21:35 . 27356 id=qdaemon term=0 exit=0
. . Aug 10 21:35 . 27358 id=writesr term=0 exit=0
. . Aug 10 21:35 . 27360 id=clinit term=0 exit=0
. . Aug 10 21:35 . 27362 id=pst_cli term=0 exit=0
. pts/2 Sep 02 18:24 5:02 33348 id=pts/2 term=1 exit=0
. pts/5 Sep 01 10:31 2:24 40934 id=pts/5 term=1 exit=0
. pts/6 Sep 02 15:43 6:23 46092 id=pts/6 term=0 exit=0
. pts/7 Sep 02 15:42 6:25 51382 id=pts/7 term=1 exit=0
. pts/8 Sep 01 17:58 old 38490 id=pts/8 term=0 exit=0
. pts/9 Sep 01 17:06 old 24254 id=pts/9 term=1 exit=0
. pts/10 Sep 01 15:39 old 38232 id=pts/10 term=0 exit=0
#man who
....
-d Displays all processes that have expired without being regenerated by init.
The exit field appears for dead processes and contains the termination and exit
determining why a process ended by looking at the error number returned by the
application.)
...
IBM网站有关Defunct进程(死进程)的问题确定
Document #: 2311123000005
Body:
[标题]有关Defunct进程(死进程)的问题确定
内容提要:
本文介绍了为什么会产生defunct进程,如何确定引起defunct进程的原因,以及当需要进一步确定问题时应提供何种信息给软件供应商。
说明:
1.Defunct进程的产生
在AIX操作系统实施的进程结构中,每一个进程都有一个父进程。当一个进程结束时会通知它的父进程,从而该进程的父进程会收集该进程的状态信息。若父进程在一定的时间内无法收集到状态信息,则系统中就会残留一个defunct进程。
因为defunct进程是已经停止的,所以使用杀死进程的方法来杀defunct进程是无效的。defunct进程不使用CPU或硬盘等系统资源,而只使用极少量的内存用于存储退出状态和资源使用信息。
2.问题确定
某一个进程在结束时由它的父进程负责删除它。要找到某一个进程的父进程,执行ps -ef命令,输出中的PPID列给出了一个进程的父进程的进程号。
(1)如果PPID为1应该如何做?
如果一个defunct进程的PPID为1,则该defunct进程的父进程为init进程。init进程是系统中所有进程的起源。通常情况下,init进程通过将defunct进程的PPID设为1来收回该进程。
如果一个defunct进程的父进程号为1,则需要确认该defunct进程是否已结束了若干分钟。(方法是等几分钟后再查看该defunct进程是否还存在。)一个系统中,特别是任务繁忙的系统中,父进程为init的defunct进程存在1~2分钟是正常的。defunct进程经常由复杂的shell脚本程序产生,这种情况通常是正常的,并不能说明有问题存在。
当init进程没有处理完/etc/inittab文件而在等其中的某一项命令结束(通常是一个/etc/rc脚本)时,可能会发生问题。在这时候,init进程会忽略掉其它所有结束的子进程,而只等这个特定的子进程结束。由一个挂起的/etc/inittab文件中的任务引起的问题的征兆是:父进程为init的defunct进程无限制的增长。在AIX4.3及以后的版本中,init进程的功能被增强,用以有效地处理defunct进程。
如果/etc/inittab文件中含有类似下一行的项,则删除它:
install_assist:2:wait:/usr/lib/lpd/pio/etc/pioinit > /dev/null 2>&1
该进程会引起defunct进程。该项应在初始化安装结束后被自动删除。
(2)如果PPID不为1应该如何做?
如果父进程号不为1,则相应的父进程应负责收回结束的子进程。未收回子进程的原因之一是shell管道。系统中的许多命令都不会产生子进程,这些进程也无法处理那些结束的子进程。这种情况在一个shell管道中有一个或多个短时进程及一个和多个长时间进程时更为明显。一个defunct进程会在它的父进程运行期间一直存在。
任何一个程序在产生子进程时都应负责在子进程结束时收回它们。如果程序在编写中没有考虑到处理它们产生的子进程,则该程序存在问题。
3.如果需要对问题做进一步确认,如何做?
如果确认一个进程是defunct进程,并且该进程应该被它的父进程收回,则可能需要提供下面的信息给应用软件供应商用以分析问题产生的可能原因:
(1)下面命令的输出:
# ps -ef
(2)下面命令的输出:
# who -a
(3)/etc/inittab 文件
(4)下面命令的输出:
SLOT=`expr / 256`
(echo u $SLOT ; echo trace -k $SLOT) | crash >
其中,是defunct进程的父进程号, 是输出文件的文件名。
现在仅仅明白了僵尸进程产生原因,除了重启机器好像没有什么更好的办法
疑问:1.在AIX 5.1上面发现仍然存在defunct进程
2.在ps -ef中看不到defunct进程,现在只会在who -d命令中看到,找不到defunct进程的父进程号
这些问题慢慢解决吧
linux defunct 进程,Defunct进程(死进程)相关推荐
- linux 僵尸进程 defunct
在 Unix系统管理中,当用ps命令观察进程的执行状态时,经常看到某些进程的状态栏为defunct,这就是所谓的"僵尸"进程. "僵尸"进程是一个早已 死亡的进 ...
- Linux中的defunct进程(僵尸进程)
一.什么是defunct进程(僵尸进程)? 在 Linux 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他,那么他将变成一个僵尸进程.当用ps命令观察进程的执行状 ...
- Kill杀死Linux中的defunct进程(僵尸进程)
一.什么是defunct进程(僵尸进程)? 在 Linux 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他,那么他将变成一个僵尸进程.当用ps命令观察进程的执行状 ...
- java defunct怎么杀掉_杀死Linux中的defunct进程(僵尸进程)的方法指南
一.什么是defunct进程(僵尸进程)在 Linux 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他,那么他将变成一个僵尸进程.当用ps命令观察进程的执行状态时 ...
- java defunct怎么杀掉_僵尸进程的产生和避免,如何kill杀掉linux系统中的僵尸defunct进程...
在 Unix系统管理中,当用ps命令观察进程的执行状态时,经常看到某些进程的状态栏为defunct,这就是所谓的"僵尸"进程."僵尸"进程是一个早已 死亡的进程 ...
- linux里面有mysql的僵尸进程_Linux中的defunct进程(僵尸进程)
一.什么是defunct进程(僵尸进程)? 在 Linux 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他,那么他将变成一个僵尸进程.当用ps命令观察进程的执行状 ...
- linux下僵尸进程(Defunct进程)的产生与避免
在测试基于 DirectFB+Gstreamer 的视频联播系统的一个 Demo 的时候,其中大量使用 system 调用的语句,例如在 menu 代码中的 system("./play&q ...
- linux僵尸进程产生的原因以及如何避免产生僵尸进程defunct
给进程设置僵尸状态的目的是维护子进程的信息,以便父进程在以后某个时间获取.这些信息包括子进程的进程ID.终止状态以及资源利用信息(CPU时间,内存使用量等等).如果一个进程终止,而该进程有子进程处于僵 ...
- 【linux】僵尸进程(Defunct进程)的产生与避免
一.什么是僵尸进程 在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他,那么他将变成一个僵尸进程.当用ps命令观察进程的执行状态时,看到这些进程的状态栏为 ...
最新文章
- mysql断网_mysql数据库断网链接
- 如何从社区的patchwork下载补丁并应用到当前内核源码?
- word文档基本编辑功能_word基本编辑的方法?word基本知识文件操作和文本编辑?...
- Kotlin中的高阶函数
- nginx-rtmp message
- 《JS权威指南学习总结--6.1原型》
- 提示word损坏,需文本恢复转换器的解决两方法
- .net 实现微信公众平台的用户信息获取
- jieba分词,构建词典
- C语言库函数学习知识
- ws2_32.dll下载-ws2_32.dll调用失败如何修复
- 如何改变win10鼠标样式
- c语言字符二维数组指针赋值,C语言之二维数组与指针
- python爬取淘宝数据魔方_淘宝数据魔方是什么(淘宝数据魔方技术架构解析)
- 杨百翰大学计算机科学,杨百翰大学
- Visual Studio 鼠标放代码上出现英文提示如何改为中文?
- 软件开发生命周期(SDLC) 【详解】(含公司产品研发流程图、大厂研发架构图、大厂研发流程图)
- 在警察领域高级人脸识别技术的一致性
- 港中文计算机金融,香港中文大学金融数据分析和风险管理科学硕士专业
- 基于jquery仿360网站图片选项卡切换代码