プロセスのuserIDを見つける必要があるbashスクリプトを書いています。例として、プロセスをbash自体にします。
私は試した ps aux | grep ba[s]h
しかし、以下が返されました:
1000 2745 0.0 0.1 28360 5440 pts/1 Ss 10:11 0:01 bash
UserID 1000が表示されていますが、ユーザー名が必要です。
これは、ユーザー名が8文字より長い場合に発生する可能性があります(OR) idに名前がありません。ただし、ps
出力にユーザー名が必要な場合は、これを試してください。
ps -eo uname:20,pid,pcpu,pmem,sz,tty,stat,time,cmd | grep '[b]ash'
これがgeditプロセスの例です
grep -w Pid /proc/$(pidof gedit)/status | cut -f 2
私がこれまでに見つけた最短の方法($ PID-検査されたプロセスのID):
ps -p $PID -o euid=
Linuxを使用していて、数値のpidが必要な場合(またはそれで問題ない場合)は、/proc
エントリを解析できます。 mysqld
プロセスの例を次に示します。
grep -e '^Uid:' /proc/$(pidof mysqld)/status | cut -f 2