CentOS进程恢复需根据进程状态选择方法,以下是常见场景的解决方案:
手动重启进程
systemctl
(适用于systemd服务):sudo systemctl restart 服务名
sudo /path/to/程序
通过进程管理工具恢复
autorestart=true
实现自动重启。Restart=always
。终止父进程
找到僵尸进程的父进程ID(PPID),执行:
kill -9 父进程ID
注意:若父进程为init(PID=1),需谨慎操作,可能导致系统异常。
批量清理
通过命令批量终止僵尸进程的父进程:
ps -A -o stat,ppid | grep -e '[Zz]' | awk '{print $2}' | xargs kill -9
配置服务自动重启
在服务配置文件中添加Restart=always
(适用于systemd)。
示例:
[Service]
ExecStart=/path/to/程序
Restart=always
使用监控工具
通过monit
或supervisor
监控进程状态,异常时自动重启。
发送信号恢复
对挂起进程发送SIGCONT
信号:
kill -CONT 进程ID
从检查点恢复(需提前配置)
使用criu
工具对进程创建检查点,崩溃后通过restore
恢复。
参考来源: