在 CentOS 系统中,可以通过配置 systemd 的服务单元文件来设置僵尸进程的自动清理。以下是具体步骤:
首先,创建一个新的 systemd 服务单元文件,用于定期清理僵尸进程。
sudo vi /etc/systemd/system/zombie-cleaner.service
在打开的文件中,添加以下内容:
[Unit]
Description=Zombie Process Cleaner
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/zombie-cleaner.sh
[Install]
WantedBy=multi-user.target
接下来,创建一个用于清理僵尸进程的脚本。
sudo vi /usr/local/bin/zombie-cleaner.sh
在脚本中添加以下内容:
#!/bin/bash
# 获取所有僵尸进程的 PID
zombie_pids=$(ps -eo pid,state | grep 'Z' | awk '{print $1}')
# 终止所有僵尸进程
for pid in $zombie_pids; do
echo "Killing zombie process $pid"
kill -9 $pid
done
保存并关闭文件。
sudo chmod +x /usr/local/bin/zombie-cleaner.sh
启用并启动刚刚创建的服务,使其在系统启动时自动运行。
sudo systemctl enable zombie-cleaner.service
sudo systemctl start zombie-cleaner.service
检查服务的状态,确保它正在运行。
sudo systemctl status zombie-cleaner.service
如果你希望定期运行清理脚本,可以使用 cron 作业来实现。
编辑 crontab 文件:
sudo crontab -e
添加以下行,每分钟运行一次清理脚本:
* * * * * /usr/local/bin/zombie-cleaner.sh
保存并关闭文件。
通过以上步骤,你可以在 CentOS 系统中设置僵尸进程的自动清理。请注意,频繁地终止进程可能会对系统性能产生影响,因此请根据实际情况调整清理频率。