Linux命令通过名称获取tomcat进程id

标签 linux command-line

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 本身

关于Linux命令通过名称获取tomcat进程id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14146536/

相关文章:

Linux - 更改除 1 个目录之外的所有文件和目录的权限?

linux - 使用 bash 脚本和使用 case 语句

windows - 从 Windows 的命令行创建一个大文件

linux - 通过带有代理和起始页参数的命令行启动 Iceweasel/FireFox

linux - 从原始文本文件中选择 n 随机行并粘贴到新文件中

linux - node.js ftdi 模块抛出错误 : libftd2xx. 所以:无法打开共享对象文件

linux - 相当于 ctrl c 命令取消程序

c# - 在c#中从控制台输入多行

batch-file - chcp 65001 和 .bat 文件

命令行中的 Java keylistener