web-dev-qa-db-ja.com

Linuxのpsコマンドの出力をユーザーのANDコマンドでフィルタリングできますか?

その所有者とそのコマンドを与えられたプロセスのpidが必要です。ユーザーごとのプロセスを「ps -u xxx」とそのコマンドで「ps -C yyy」でフィルタリングできますが、「ps -u xxx -C yyy」を試すと、OR論理。AND論理が必要ですが、どうすれば実現できますか?

8
Krumelur

Pgrepを使用しますか?

pgrep -U xxx yyy

pid(または複数のプロセスが一致する場合はpids)のみを返します。

11
Marius Gedminas

Grepを使用しますか?

ps -u xxx | grep yyy | grep -v grep
2
RedGrittyBrick

commを使用して、両方の条件に共通するPIDを検索します。

ps -u xxx | sort > /tmp/ps-uxxx
ps -C yyy | sort > /tmp/ps-Cyyy
comm -1 -2 /tmp/ps-uxxx /tmp/ps-Cyyy

Bashを使用すると、プロセス置換を使用して一時ファイルの必要性を回避できます。

comm -1 -2 <(ps -u xxx | sort) <(ps -C yyy | sort)
2
GargantuChet