服务器上不定期的会出现僵尸进程,占用资源很麻烦啊。比如找出那些运行超过1个小时的进程之类的
2 回答
元芳怎么了
TA贡献1798条经验 获得超7个赞
首先,僵尸进程不占用内存和CPU,只占用一个PID和对应的进程结构存储空间。
其次,出现僵尸进程,通常是server程序没写好,建议首先考虑修复这个问题
最后,用ps aux可以看出一个进程是否是僵尸进程(STAT=Z)、它的启动时间(START TIME,或者执行stat /proc/PID获取创建时间)。有了这些数据,你可以很容易地写个简单脚本来滤出那些进程。
繁星淼淼
TA贡献1775条经验 获得超11个赞
1. 应该先检查下程序, 是不是 没有对 子进程 调用 wait或者waitpid函数回收进程资源, 或者把子进程挂在init进程下面, 由系统回收资源。 没有回收 进程资源的进程 就是会zombie状态。
2. 作为一个应急的处理办法, 把状态是Zombie的进程筛选出来, 然后杀了也可以。
kill -9 $( ps aux | awk '{ if( $8 == "Z" ) { print $2 ; } }' )
- 2 回答
- 0 关注
- 111 浏览
添加回答
举报
0/150
提交
取消