web-dev-qa-db-ja.com

ps -efからのpidの取得| grepキーワード

ps -ef | grep "keyword"を使用して、デーモンプロセスのpidを決定します(ps -efの出力には一意の文字列があります)。

pkill keywordでプロセスを強制終了できます。強制終了せずにpidを返すコマンドはありますか? (pidofまたはpgrepは機能しません)

101
Dennis Ich

-fオプションを含める限り、canpgrepを使用できます。これにより、pgrepは、プロセス名だけでなく、コマンド全体(引数を含む)のキーワードに一致します。

pgrep -f keyword

manページ から:

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


本当にpgrepを避けたい場合は、以下を試してください:

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

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

214
Shawn Chin

お試しください

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

このコマンドは、KEYWORDを含むプロセスのPIDを提供する必要があります。この場合、awkは、出力の2列目にあるものを返します。

46
Lewis Norton

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

20
Vinayak

私が使う

ps -C "keyword" -o pid=

このコマンドは、PID番号を提供する必要があります。

8
Arksonic

これはLinuxで利用可能です:pidofキーワード

6
dbrank0

特定のキーワードでプロセスを強制終了するには、~/.bashrc(linux)または~/.bash_profile(mac)でエイリアスを作成できます。

alias killps="kill -9 `ps -ef | grep '[k]eyword' | awk '{print $2}'`"
1
swayamraina