我有2只猫在运行,如果两者的名字相似,如何得到pid呢?
ps -ef | grep java
root 12952 1 0 10:01 pts/0 00:00:03 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/usr/local/realbid/tomcat-realbid-ws/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/realbid/tomcat-realbid-ws/endorsed -classpath /usr/local/realbid/tomcat-realbid-ws/bin/bootstrap.jar -Dcatalina.base=/usr/local/realbid/tomcat-realbid-ws -Dcatalina.home=/usr/local/realbid/tomcat-realbid-ws -Djava.io.tmpdir=/usr/local/realbid/tomcat-realbid-ws/temp org.apache.catalina.startup.Bootstrap start
root 12995 1 0 10:02 pts/0 00:00:03 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/usr/local/realbid/tomcat-realbid/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/realbid/tomcat-realbid/endorsed -classpath /usr/local/realbid/tomcat-realbid/bin/bootstrap.jar -Dcatalina.base=/usr/local/realbid/tomcat-realbid -Dcatalina.home=/usr/local/realbid/tomcat-realbid -Djava.io.tmpdir=/usr/local/realbid/tomcat-realbid/temp org.apache.catalina.startup.Bootstrap start
root 13317 12252 0 10:12 pts/0 00:00:00 grep java如果我使用基本grep,则得到pid(s)。
echo `ps aux | grep 'tomcat-realbid' | grep -v grep | awk '{ print $2 }'`
12952 12995有没有办法只得到pid的tomcat-realbid?
发布于 2015-03-10 10:39:23
您可以使用逆grep,所以也许:
ps aux | grep 'tomcat-realbid' | grep -v 'tomcat-realbid-ws'这基本上是对带有tomcat的进程进行过滤,然后再过滤,删除任何具有tomcat-realbid的进程,您已经在使用反向grep来删除原始grep。最终结果可能如下所示:
echo ps aux | grep 'tomcat-realbid' | grep -v 'tomcat-realbid-ws' | grep -v grep | awk '{ print $2 }'发布于 2015-03-10 10:37:20
也许试一试:
pgrep tomcat-realbid发布于 2015-03-10 10:55:13
试一试
ps auxwww | grep "/tomcat-realbid/"https://serverfault.com/questions/674255
复制相似问题