我目前正在创建一个 BASH 脚本来终止进程。我首先检查该进程是否正在运行,然后将其杀死。但我想添加一个嵌套if
来查明该进程是否由 root 打开(而不是当前脚本)。
答案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