現在実行中のプロセスがrootまたはユーザーによって開かれていることを確認する方法

現在実行中のプロセスがrootまたはユーザーによって開かれていることを確認する方法

現在、プロセスを終了するためのBASHスクリプトを作成しています。まず、プロセスが実行中であることを確認してから終了します。しかし、ifプロセスがルート(現在のスクリプトではなく)によって開かれていることを確認するためにネストを追加したいと思います。

ベストアンサー1

ps -o ruser=または、次のものを使用できますps -o uid=

$ ps -p 930 -o ruser=
root
$ ps -C cron -o ruser=
root
$ [[ $(ps -C cron -o uid=) -eq 0 ]]; echo $?
0

-pはpidで一致し、-Cはコマンド名で一致します。 OS Xのpsは-Cをサポートしていませんが、pgrepを使用できます。

$ ps -p $(pgrep -x cron) -o ruser=
root

おすすめ記事