特定のユーザーを除く Linux pgrep

特定のユーザーを除く Linux pgrep

pgrep私はいくつかのJavaアプリケーションを監視するためにシェルスクリプトでコマンドを使用しています。しかし、Javaの継続的なサービスのために私のコードに問題が発生しました。プロセスは他のユーザーに属しています。それでは、grepを使用するときに特定のユーザーのプロセスを除外する方法はありますか?

現在使用中のスクリプト行は次のとおりです。

pgrep java

特定のユーザーのプロセスを除外する必要があります。このスクリプトを修正して出力を取得するのに役立ちます。私はSolarisを使用しています。

答え1

使用正規表現AND-uまたは-Uオプション:

-u euid,...
    Only match processes whose effective user ID is listed. Either the 
    numerical or symbolical value may be used.
-U uid,...
    Only match processes whose real user ID is listed. Either the numerical 
    or symbolical value may be used.

したがって、次のことを試してください。

pgrep -u youruser java

ユーザーが所有するjavaという名前のすべてのプロセスが一覧表示されます。

ユーザーを除外するには、次のようにします。

grep -vxf <(pgrep -u exclude_user java) <(pgrep java)

関連情報