web-dev-qa-db-ja.com

複雑なプロセス名のpgrep / pidofの使用法?

私のシステムのプロセスにHUPを送信できるようにpidofまたはpgrepを使用しようとしています。問題は、正確なパラメーターを使用してプロセスを強制終了することだけです。

これは「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"

あなたは正しい答えを得るでしょう。

11
aseques
$ 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
10
jirib