pgrep/pidof 用于复杂的进程名称吗?

pgrep/pidof 用于复杂的进程名称吗?

我正在尝试使用 pidof 或 pgrep 向系统中的进程发送 HUP。问题是我只想使用精确的参数终止进程。

这是“ps awx”的输出

  657 ?        S      0:00 processname software
  658 ?        S      0:00 processname demo
  659 ?        S      0:00 processname test

通过执行以下操作之一:

pidof processname 
pgrep processname

您可以获得以进程名称开头的所有进程的列表,但我想执行以下操作:

pidof processname test
pgrep processname test

仅检索我需要的 PID(在此示例中为 659)

更新

通过在 pgrep 上使用 -f 标志就可以完成我想要的操作:

pgrep -f "processname test"

你会得到正确答案的。

答案1

$ ps aux |grep [d]evio
user01   10220  0.0  0.1   5376  2424 pts/5    S+   11:41   0:00 ssh devio
$ pgrep -f "ssh devio"
10220
$ pkill -0 -f "ssh devio" ; echo $?
0

相关内容