簡體   English   中英

Linux命令按名稱獲取tomcat進程id

[英]Linux command get tomcat process id by name

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

提前致謝。

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

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

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

雙grep對於丟棄grep pids本身很有用

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

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

要么

CATALINA_PID=/tmp/tomcat.pid

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

這對我有用:

這將給出當前運行tomcat的進程id

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM