0

コマンドがこれを見ることができることは知っpsていますが、pid が与えられた場合、どのユーザーがそのプログラムを開始したかをどのように知ることができますか? loginuid/proc/[pid]/ に a が表示されますが、それは実際の uid の補足コードのようです。よくわかりません。

4

2 に答える 2

1

どうstatusですか?

cnicutar@lemon:/proc/self$ cat status
Name:   bash
State:  S (sleeping)
#....
Uid:    1000    1000    1000    1000
Gid:    1000    1000    1000    1000

4 つの UID があります: リアル、有効、保存済みセット、およびファイル システムです。にすべて記載されていproc(5)ます。

于 2012-05-12T09:59:13.533 に答える
0

ユーザーのみが必要で、使用できる PID を認識していると仮定すると、次のようになりpsますawk

ps auxf | awk NR!=1 | awk '{print $1" "$2}' | grepピッド| awk '{print $1}'

プロセスをよりよく理解できるように、コマンドを分解します。

おそらくご存知のとおり、 の最初の行はヘッダーを示してい ます。これが、取得した出力からヘッダーを除外するpsために使用する理由です。awk NR!=1

PIDとのみが必要なのでUser、 で最初の 2 つだけを選択することにより、他の列を取り除くことができますawk '{print $1" "$2}'

simplegrepを使用すると、プロセス ID: でフィルタリングして、必要な行を見つけることができますgrep 123

最後に、ユーザーである最初の列のみを選択します。awk '{print $1}'

于 2012-05-12T10:13:12.497 に答える