ps 辅助 |两个相似进程之间的grep

ps aux | grep between two similar processes

我写了一个脚本,用于检查进程是否 运行。如果没有,则它开始该过程。 假设我有几个像这样的进程 运行 :

root      5780  0.0  2.2 3168184 85828 ?       Sl   09:02   0:15 /usr/bin/java -jar /home/vtermina/private/crons/jar/consumer-1.0.jar promotionalSecond

root      5780  0.0  2.2 3168184 85828 ?       Sl   09:02   0:15 /usr/bin/java -jar /home/vtermina/private/crons/jar/consumer-1.0.jar promotionalSecond backup

root      8989  0.0  1.4 2966364 57540 ?       Sl   09:04   0:07 /usr/bin/java -jar /home/vtermina/private/crons/jar/update-report-1.0.jar Rb1 backup

所以我使用以下命令来检查进程是否正在运行:

ps uax|grep -w "consumer-1.0.jar promotionalSecond" |grep -v grep|wc -l

这个命令returns我一个,如果它找到一个进程运行。 直到最近,当我也开始使用一些备用消费者时,它一直运行良好。 现在如果备份消费者是运行,这个命令returns 1,即使消费者不是运行,

如何在 ps aux 中查找准确的词。 这样我的命令就会给出正确的结果。

做了一些研究,我得到了答案。在搜索词中使用“$”,需要什么。 $ 表示搜索词到此结束。

例如,如果我只想检查 promotionalSecond 而不是备份,则以下命令非常有效。

ps uax|grep -w "consumer-1.0.jar promotionalSecond$" |grep -v grep|wc -l