0

我知道ps命令可以看到这一点,但是鉴于 pid,如何知道哪个用户启动了该程序?我loginuid在 /proc/[pid]/ 中看到了一个,但这似乎是真实 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}' | grepPID| 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 回答