使用“ssh ps aux”来保证进程存活,有时会出错

使用“ssh ps aux”来保证进程存活,有时会出错

Q1: 最近,在 machine-01 上部署了一些操作脚本,以便监视远程计算机中活动的进程。此功能是通过定期执行以下 cmd 来完成的:

ssh $ip "ps aux | grep $pattern " | grep -v 'grep' | wc -l

虽然它按我的预期工作,但有时会出错,这意味着上述 cmd 的结果是“空”。顺便说一下,我通过这个cmd检查结果:

if [ "$nums" -lt 1 ]

Q2:另外,这个操作脚本会创建后台子进程来运行其他子脚本,设计数量为60个。当我'ps aux | grep xxx' 来查看它们是否按照我的预期创建,只是发现几行具有相同 CMD 的不同 PID,我将其称为“幽灵 pid”。如果这些“ghost pid”是这些后台子进程创建的子子进程,为什么它们有相同的CMD?

这两个事实暗示我可能不知道'ps aux | grep xxx' 好吧。有人能为我解释一些吗?

=============================

替换 ps aux 后 | grep xxx 与 pgrep。 “幽灵 pid”仍然发生。我通过双重检查 Q1 进行了黑客攻击。但仍然无法修复Q2。 Fig-1 是我的启动子进程日志。图 2 是我在 period pgrep 子进程时得到的结果。

图。1 :在此输入图像描述

图2:在此输入图像描述

相关内容