我想,当一个特定的进程正在运行,以确定,是根据它的参数,在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的男人页面为了这个家的功能。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top