【问题标题】:ps aux | grep between two similar processesps辅助|两个相似进程之间的 grep
【发布时间】:2016-08-12 09:02:36
【问题描述】:

我编写了一个脚本,它检查进程是否正在运行。如果没有,则开始该过程。 假设我很少有这样运行的进程:

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. 以便我的命令给出正确的结果。

【问题讨论】:

标签: unix grep ps


【解决方案1】:

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

例如,如果我只想检查promotionSecond 而不是备份,则以下命令可以完美运行。

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

【讨论】:

  • 不错!你可以省略一个管道,说grep -w "[c]onsumer ... Second$" | wc -l
猜你喜欢
  • 2014-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-27
相关资源
最近更新 更多