简体   繁体   English

如何在Linux中通过唯一的进程名获取pid?

[英]How to get pid by unique process name in linux?

I have two java program running on server MyProgram and MyProgramTest . 我在服务器MyProgramMyProgramTest上运行了两个Java程序。

ps -ef | grep -i java

root       505 17711  0 16:54 pts/4    00:00:00 grep -i MyProgram
root     16450 16448 99 16:46 pts/4    00:07:29 java MyProgram
root     16473 16471 99 16:46 pts/4    00:07:29 java MyProgramTest

I want to search there pid using below commands 我想使用以下命令在pid中搜索

ps ax | grep -v grep | grep MyProgram

It should give me PID 16450 but it is giving both 它应该给我PID 16450,但同时给我

16450 pts/4    Sl     9:19 java MyProgram
16473 pts/4    Sl     9:19 java MyProgramTest

Expected Output : 预期产量:

16450 pts/4    Sl     9:19 java MyProgram

How to get PID by Unique Process Name in linux ? 如何在Linux中通过唯一进程名称获取PID?

ps ax | grep -v grep | grep -w "MyProgram"

要么

ps ax | grep -v grep | grep "\MyProgram\b"

You can use, 您可以使用,

ps ax | grep -v grep | grep -w  MyProgram

-w for Whole Word Match. -w表示整个单词匹配。 However, It will also match things like MyProgram or MyProgram Hello. 但是,它也可以匹配MyProgram或MyProgram Hello之类的东西。

为了避免使用grep -v grep之类的技巧,最好使用pgrep

pgrep --exact MyProgram

Suffix $, ie; 后缀$,即; the process name ends with "MyProgram", 进程名称以“ MyProgram”结尾,

$ ps -ef |grep MyProgram$

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM