我在服务器MyProgram
和MyProgramTest
上运行了两个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
我想使用以下命令在那里搜索pid
ps ax | grep -v grep | grep MyProgram
它应该给我PID 16450,但它同时给出了
16450 pts/4 Sl 9:19 java MyProgram
16473 pts/4 Sl 9:19 java MyProgramTest
预期产出:
16450 pts/4 Sl 9:19 java MyProgram
如何通过linux中的唯一进程名称获取PID?
答案 0 :(得分:2)
ps ax | grep -v grep | grep -w "MyProgram"
或
ps ax | grep -v grep | grep "\MyProgram\b"
答案 1 :(得分:1)
你可以使用,
ps ax | grep -v grep | grep -w MyProgram
-w用于全字匹配。但是,它也会匹配MyProgram或MyProgram Hello等内容。
答案 2 :(得分:0)
为了避免像grep -v grep
这样的技巧,最好使用pgrep
:
pgrep --exact MyProgram
答案 3 :(得分:0)
后缀$,即;进程名称以" MyProgram",
结尾$ ps -ef |grep MyProgram$