如何区分系统进程PID和用户进程PID?

时间:2012-08-24 18:26:13

标签: objective-c macos unix

在OSX上使用objective-c如何区分用户应用程序(即Safari)的PID和系统进程? (即推出)

我基本上需要能够接收PID作为输入并显示其用户应用程序或系统进程是否为输出。

2 个答案:

答案 0 :(得分:1)

PID不是用来区分“用户”和“系统”过程的。区别因素是谁(哪个用户帐户)启动它以及如何/何时/何时启动它。在Linux(其他类Unix操作系统,包括OSX,没有那么大的不同),在“根”帐户或一定数量的其他特殊目的帐户下运行的东西可以被宽泛地视为“系统”进程,而那些由与实际人类用户相对应的帐户将被视为“用户”流程,但这些行非常模糊。它可能没有您想象的那样有用的分类......

答案 1 :(得分:1)

我同意twalberg的所有评论。

您可以通过查看从命令行运行的ps -ef输出来实现您的理解。 (Terminal.app)。

您可以ps -ef | grep -i safari查看是否返回任何唯一内容。其他“用户”应用也是如此。

也可以尝试

ps -ef| awk '{print $1}' | sort | uniq -c

查看所有流程的所有权范围。

在花时间尝试使用objective-c编写代码之前,请先了解这一点。

IHTH