我知道ps
命令可以看到这一点,但是鉴于 pid,如何知道哪个用户启动了该程序?我loginuid
在 /proc/[pid]/ 中看到了一个,但这似乎是真实 uid 的补充代码,不确定。
问问题
92 次
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
PID| awk '{print $1}'
我将分解命令,以便您更好地了解该过程。
您可能知道,第一行ps
显示标题,这就是我们使用awk NR!=1
从获得的输出中排除标题的原因。
由于我们只需要PID
和 ,User
我们可以通过只选择前两列和 来摆脱其他列awk '{print $1" "$2}'
。
使用 simplegrep
你可以找到你需要的行,通过 process id: 过滤grep 123
。
最后我们只选择第一列,即用户:awk '{print $1}'
于 2012-05-12T10:13:12.497 回答