web-dev-qa-db-ja.com

実行中のプロセスのUID / GIDをどのように決定できるか

実行中のプロセスのUID/GIDを取得する方法はありますか?現在、私はそれをhtopで調べる方法しか知りません。しかし、私はサードパーティのツールに依存したくないので、組み込みのUNIXコマンドを使用することを好みます。いくつかの便利なワンライナーを提案できますか?

これは私の好奇心を満たしませんでした:

実行中のプロセスのGIDをプログラムで取得する方法

上部にはユーザーのみが表示され、グループは表示されません。

3
Bulat M.
$ stat -c "%u %g" /proc/$pid/
1000 1000

または

$ egrep "^(U|G)id" /proc/$pid/status
Uid:    1000    1000    1000    1000
Gid:    1000    1000    1000    1000

またはbashビルトインのみ:

$ while read -r line;do [ "${line:1:2}" = "id" ] && echo $line;done < /proc/17359/status 
Pid: 17359
Uid: 1000 1000 1000 1000
Gid: 1000 1000 1000 1000
11
Ipor Sircer

または* BSDシステム(psは移植不可能であり、OpenBSDは使用されていない/proc現在のリリースの束)

ps -o uid,gid -p ...
2
thrig