小编can*_*atz的帖子

用于查找僵尸进程的 Bash 脚本?

所以最近我注意到我有一个进程会随机崩溃并变成一个 PPID 为 1 (init) 的僵尸。有人告诉我,解决此问题的唯一方法是重新启动 PC(或将 SIGCHLD 发送到 init,据我所知,这是....冒险/无用。)

本质上,我想要做的是编写一个 bash 脚本,该脚本将只查找僵尸进程,如果有,则重新启动 PC。

目前,我使用这个脚本来监控进程本身:

 ps auxw | grep ethminer | grep -v grep > /dev/null

 if [ $? != 0 ]
 then
    sudo reboot
 fi
Run Code Online (Sandbox Code Playgroud)

现在,当 ethminer 正在运行或未运行时,此脚本似乎可以正常工作;如果在进程表中没有看到 ethminer,它将重新启动机器,如果没有看到它,它什么也不做。

然而,(从我公认的松散理解)因为当进程变成僵尸时没有退出代码if [ $? != 0 ]不会得到任何输入,因此不会做任何事情。

无论如何我可以修复/修改这个脚本,让它做我想做的事吗?还是我在这里偏离了轨道?

谢谢!

command-line bash scripts process zombie

3
推荐指数
1
解决办法
5659
查看次数

标签 统计

bash ×1

command-line ×1

process ×1

scripts ×1

zombie ×1