2011-11-14 4 views
82

ps -ef | grep "keyword"を使用して、デーモンプロセスのPID(ps -efの出力に一意の文字列があります)を確認します。ps -efからpidを取得する| grepキーワード

私はpkill keywordでプロセスを終了できますが、それを殺す代わりにpidを返すコマンドはありますか? (pidofかのpgrep doesntの仕事)

答えて

175

あなたです。-fオプションを含める限り、pgrepを使用してください。そのため、pgrepは、プロセス名ではなくコマンド全体(引数を含む)に一致するキーワードになります。 man pageから

pgrep -f keyword 

-f      パターンが正常にのみ、プロセス名と照合されます。 -fが設定されている場合は、完全なコマンドラインが使用されます。


あなたが本当にのpgrepを避けたい場合は、試してみてください。

ps -ef | awk '/[k]eyword/{print $2}' 

は、キーワードの最初の文字の周りに[]に注意してください。これは、awkコマンド自体の照合を避けるための便利なトリックです。

+1

ありがとう:)これはLinuxには少し新しくなっています-f works:P –

+1

デニスです。 –

+3

psが過剰使用されているため、pgrepが十分に活用されていません。投稿に感謝します。 –

38

コマンド

ps -ef | grep "KEYWORD" | awk '{print $2}'

を試してみてはあなたに彼らのKEYWORDとプロセスのPIDを与える必要があります。この場合、awkは出力から2番目の列にあるものを返しています。

+1

これは複数のPIDを返すことができるので、最初に '|ヘッド-1 '。 – Kris

5

これは、Linuxで提供されています:キーワードpidof私はあなたにPID番号を与える必要があります

ps -C "keyword" -o pid= 

このコマンドを使用し

8

ps -ef | grep KEYWORD | grep -v grep | awk '{print $2}'

+4

おそらくタイプミスですか? ps -ef | grep KEYWORD | grep -v grep | awk '{print $ 2}' – rmv

+0

返されたPIDを "kill -9"に渡す方法を知っていますか? – alybadawy

+0

@alybadawyちょうど '| xargs kill -9'を最後まで – patte8

関連する問題