我编写了一个脚本,用于检查进程是否正常运行。如果没有,则启动该过程。 可以说我运行的进程很少:
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中找到准确的单词。 所以我的命令给出了正确的结果。
答案 0 :(得分:2)
做一些研究,我得到了答案。使用" $"在搜索术语中,确实需要什么。 $告诉搜索词在那里结束。
就像,如果我只想检查promotionalSecond而不是备份,则以下命令可以正常工作。
ps uax|grep -w "consumer-1.0.jar promotionalSecond$" |grep -v grep|wc -l