我需要知道进程是否来自用户。 我使用此代码:
#c is the PID
Aid=$(cat /proc/$c/status | grep -e ^Uid)
Uid="Uid: 0 0 0 0"
if [ "$Aid" != "$Uid" ]; then
echo "is from user"
fi
但我对#34;标签"不太满意。在字符串中,我认为可能会导致一些意想不到的行为。
还有其他办法吗?
答案 0 :(得分:5)
您无需使用ps -o uid= -p $pidhere
进行解析即可获取某个pid的UID:
mypid=1
if uid=$(ps -o uid= -p "$mypid")
then
if [[ $uid -eq 0 ]]
then
echo "The process runs as root"
else
echo "The process runs as something else"
fi
else
echo "The process doesn't exist"
fi