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

时间:2016-08-12 09:02:36

标签: unix grep ps

我编写了一个脚本,用于检查进程是否正常运行。如果没有,则启动该过程。 可以说我运行的进程很少:

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

如果发现进程正在运行,则此命令将返回一个命令。 直到最近,当我开始使用一些备用消费者时,它工作正常。 现在,如果备份使用者正在运行,则此命令将返回1,即使使用者未运行,

也是如此

我怎样才能在ps aux中找到准确的单词。 所以我的命令给出了正确的结果。

1 个答案:

答案 0 :(得分:2)

做一些研究,我得到了答案。使用" $"在搜索术语中,确实需要什么。 $告诉搜索词在那里结束。

就像,如果我只想检查promotionalSecond而不是备份,则以下命令可以正常工作。

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