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


11

私は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"

正しい答えが得られます。


右、-f完全なコマンドラインで一致するため、通常必要です。pgrepは正規表現で動作するため、比較的複雑なマッチングも実行できることに注意してください。
cjc

回答:


10
$ 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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.