如何在Mac OS上通过PID获取进程用户名?

7

我使用了getpid()函数来获取进程PID,现在如何获取进程的用户名呢?

我尝试了这个shell命令ps -o user= PIDNUM,但是在Mac 10.4上并没有起作用。

还有其他的方法吗?

3个回答

6

我会使用 psawk

% ps aux | awk -v PID=13521 '$2 == PID { print $1 }'
root

...其中13521是相关进程的PID。请根据您自己的PID或${environment_variable}进行替换!

如果没有PID,您可以像下面这样查找所有正在运行Google Chrome的用户:

% ps aux | awk -v app='Google Chrome' '$0 ~ app { print $1 }'  

6

ps -ef | grep <process_pid> --- 这将为您提供您需要的所有信息。


该命令将显示与特定进程ID相关的所有进程信息。

你可以在上面使用awk来过滤出一列。 - Bill

5
以下命令可实现此功能:ps -efj | grep PID 其中,
  • e:选择所有进程
  • f:进行完整格式列表显示
  • j:使用作业控制格式。
更多信息可参考:[http://linux.die.net/man/1/ps][1]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接