2013-01-03 71 views
6

Linux命令行:Linux命令通過名稱獲取Tomcat進程ID

當我執行以下命令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 

但是當我發出以下命令它說明不了什麼

​​

可以一些身體幫助我怎樣才能得到它的名稱正則表達式爲「* -rum」的tomcat進程ID

在此先感謝。

+0

人們似乎吝嗇,當談到upvoting :)謝謝問題詢問此,這讓我很容易找到答案。 –

回答

12

pgrep只搜索沒有完整路徑的進程名稱(在你的情況下只有java)並且沒有參數。

由於的tomcat-5.5-26朗姆酒是後者的一部分,我會搜索PID與

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

雙grep的是有用丟棄的grep的PID本身

7

剛在catalina.sh文件的開頭添加以下行

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

OR

CATALINA_PID=/tmp/tomcat.pid 

並反彈tomcat。這將在給定路徑中創建一個tomcat.pid文件,並將Tomcat進程pid放入其中。

2

這爲我工作:

這會給當前運行Tomcat的進程ID

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