Unix ps aux | grep在两个类似过程之间
我已经编写了一个脚本,用于检查进程是否正在运行。如果没有,则启动该过程。 假设我有几个进程是这样运行的:Unix ps aux | grep在两个类似过程之间,unix,grep,ps,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 ?
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中查找准确的单词。
这样我的命令就能给出正确的结果。做了一些研究,我得到了答案。在搜索词中使用“$”,不需要做什么。$指示搜索词到此结束 比如,若我只想检查PromotionSecond而不想检查backup,那个么下面的命令可以很好地工作
ps uax|grep -w "consumer-1.0.jar promotionalSecond$" |grep -v grep|wc -l
相关:。问题是,
ps | grep
运行一个子shell,它也会被返回。很好!您可以省略一个管道,方法是说grep-w“[c]onsumer…Second$”|wc-l