【发布时间】:2015-09-27 23:48:07
【问题描述】:
我正在使用 C 语言并使用以下代码执行ps linux 命令:
char *const parmList[] = {"ps","-o","pid","-g",processGroupID,NULL};
execvp(parmList[0], parmList);
问题在于它会打印组中的所有进程,包括已终止的进程。我需要确保未被终止的组进程是唯一显示的。有没有办法做到这一点?
【问题讨论】:
我正在使用 C 语言并使用以下代码执行ps linux 命令:
char *const parmList[] = {"ps","-o","pid","-g",processGroupID,NULL};
execvp(parmList[0], parmList);
问题在于它会打印组中的所有进程,包括已终止的进程。我需要确保未被终止的组进程是唯一显示的。有没有办法做到这一点?
【问题讨论】:
ps 命令显示当前 tty 终端的活动进程列表。
ps - axrgo pid 或 ps -axro pid -g
ps 有一个简单的进程选择选项。
-a -------> 选择除会话领导者和与终端无关的进程之外的所有进程。即包括所有活动终端
-e --------> 包括所有进程。
-g -------> 按会话或有效组名选择。
-r -------> 将选择限制为仅正在运行的进程。
-x -------> 选项使 ps 列出您拥有的所有进程(与 ps 相同的 EUID),或者与 a 选项一起使用时列出所有进程。
【讨论】:
添加a x r 选项以仅获取正在运行的进程。
【讨论】: