为什么我不能 pgrep 进程?

Lan*_*nes 12 linux bash

$ ps aux | grep -i ssh
USER      4364  0.0  0.0   9004  1032 ?        Ss   12:20   0:00 ssh -v -fND localhost:4000 USERNAME@SERVER-IP-ADDRESS

$ pgrep localhost:4000
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?

cam*_*amh 25

默认情况下,pgrep(1)只会匹配进程名称。如果要匹配完整的命令行,请使用以下-f选项:

$ pgrep -f localhost:4000
Run Code Online (Sandbox Code Playgroud)


Cal*_*leb 8

查看pgrep手册页。它不仅仅是运行带有一堆列的 ps 然后 grep 文本输出的别名。它实际上在特定字段中搜索值。默认情况下,它只在进行搜索时查看进程名称并返回PID。您可以通过添加-f选项来搜索完整的命令行。您还可以搜索其他几个可能有用的字段,例如匹配正在运行进程的终端或组 ID。