14

Linux命令行:

当我执行以下命令ps -ef |grep tomcat时,它会显示以下过程

abcapp   28119     1  0 12:53 ?        00:00:19 /usr/java/jdk1.6.0_10//bin/java -Xmx256m -Dabc.log.file=/home/app/apps/rum/logs/dev.log -Dabc.config=dev -Dlog4j.configuration=file:///home/abcapp/env/abc_env/abc_env-1.2/config/log4j-webapp.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/home/abcapp/env/tomcat/tomcat-5.5-26-rum/conf/logging.properties -Djava.endorsed.dirs=/home/abcapp/env/tomcat/tomcat-5.5-26-rum/common/endorsed -classpath :/home/abcapp/env/tomcat/tomcat-5.5-26-rum/bin/bootstrap.jar:/home/abcapp/env/tomcat/tomcat-5.5-26-rum/bin/commons-logging-api.jar -Dcatalina.base=/home/abcapp/env/tomcat/tomcat-5.5-26-rum -Dcatalina.home=/home/abcapp/env/tomcat/tomcat-5.5-26-rum -Djava.io.tmpdir=/home/abcapp/env/tomcat/tomcat-5.5-26-rum/temp org.apache.catalina.startup.Bootstrap start

但是当我发出以下命令时,它什么也没显示

pgrep tomcat-5.5-26-rum OR pgrep "*-rum"

有人可以帮助我如何通过名称正则表达式“*-rum”获取tomcat进程ID

提前致谢。

4

3 回答 3

23

pgrep 仅搜索没有完整路径(在您的情况下只有java)且没有参数的进程名称。

由于tomcat-5.5-26-rum是后者的一部分,我会搜索 pid

ps -ef | grep tomcat-5.5-26-rum | grep java | awk ' { print $2 } '

双 grep 对于丢弃 grep pid 本身很有用

于 2013-01-03T20:27:17.657 回答
7

catalina.sh只需在文件开头添加以下行

CATALINA_PID="$CATALINA_BASE"/logs/tomcat.pid

或者

CATALINA_PID=/tmp/tomcat.pid

并反弹tomcat。这将在给定路径中创建一个tomcat.pid文件,并将 Tomcat 进程 pid 放入其中。

于 2013-04-21T23:41:54.370 回答
7

这对我有用:

This will give the process id of current running tomcat

echo ps aux | grep org.apache.catalina.startup.Bootstrap | grep -v grep | awk '{ print $2 }'

于 2016-10-14T11:44:53.693 回答