定期自动清理僵尸进程,降低系统的内存资源占用

2021-03-01 发布 0条评论

什么是僵尸进程?在Unix系统管理中,当用ps命令观察进程的执行状态时,经常看到某些进程的状态栏为defunct,这就是所谓的“僵尸”进程。


僵尸进程的危害

僵尸进程是一个早已死亡的进程,但在进程表(processs table)中仍占了一个位置(slot)。由于进程表的容量是有限的,所以,defunct进程不仅占用系统的内存资源,影响系统的性能,而且如果其数目太多,还会导致系统瘫痪。

如何杀死僵尸进程

一般僵尸进程很难直接kill掉,不过您可以kill僵尸爸爸。父进程死后,僵尸进程成为”孤儿进程”,过继给1号进程init,init始终会负责清理僵尸进程.它产生的所有僵尸进程也跟着消失。

自动清理僵尸进程教程

1、安装Crontab,高版本OS基本自带Crontab,如果提示未安装才需要安装。

CentOS 

yum install vixie-cron
yum install crontabs

 

Debian/Ubuntu

apt-get install cron

 

运行代码

启动:service cron start
重启:service cron restart
停止:service cron stop
检查状态:service cron status
查询cron可用的命令:service cron
检查Cronta工具是否安装:crontab -l

 

2、打开Crontab配置文件

sudo crontab -e

 

3、在末尾加上以下代码即可每12小时自动清理一次僵尸进程

0 */12 * * * kill -9 $(ps -A -ostat,ppid | grep -e '[zZ]'| awk '{ print $2 }')

 

发表评论