我知道ps
命令可以看到这个,但是给定了pid,怎么知道哪个用户启动了该程序?我在/ proc / [pid] /中看到loginuid
,但这似乎是真正的uid的补充代码,不确定。
答案 0 :(得分: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)
中描述。
答案 1 :(得分:0)
假设您只想要用户并且您了解PID,则可以使用ps
和awk
,如下所示:
ps auxf | awk NR!=1 | awk '{print $1" "$2}' | grep
{PID {1}}
我将分解命令,以便您更好地了解该过程。
您可能知道,| awk '{print $1}'
的第一行显示标题,这就是我们使用ps
从获取的输出中排除标题的原因。
由于我们只需要awk NR!=1
和PID
,我们可以通过仅User
选择前两个来删除其他列。
使用简单的awk '{print $1" "$2}'
,您可以找到所需的行,按流程ID grep
进行过滤。
最后我们只选择第一列,即用户:grep 123