如何PS显示了在Mac OS X中的所有进程的argv?
题
我想,当一个特定的进程正在运行,以确定,是根据它的参数,在Mac OS X可能有相同的名字运行多个程序,但只有一个会我找的参数。该过程不受谁将会运行我的代码相同的用户所拥有。他们不会修改了他们的argv以任何方式。
在“PS”命令显示完全信息,我需要。不过,我会非常不希望有产卵“PS”和解析它的输出。
我最初试图从这个问题一溶液>,通过sysctl,但事实证明,只适用于你自己的过程;看到我的其他问题了解更多信息。
那么,如何获得PS的argv信息以供其他用户拥有的进程?
解决方案
在Mac OS X PS为setuid 0,这是它如何得到所有进程的信息。你必须以root身份运行,以获得这些信息,所以无论你需要的setuid 0或运行使用sudo你的水电费。
最好的办法可能只是产卵PS和解析输出,即使你真的不想要;)
其他提示
BSD ps
(Mac OS X中使用)使用kvm_getargv()
获取命令行参数为一个过程。
下面是实际的呼叫: PS源代码。搜索kvm_getproc2
。
请参阅 OpenBSD的男人页面为了这个家的功能。
不隶属于 StackOverflow