在 linux 中同时输出停止和 运行 进程?

Outputting both stopped and Running processes in linux?

我目前在我的 c 程序中使用 Linux 命令来显示一组进程。但是,当进程停止(挂起)时,此命令不会列出它。我需要列出 运行 和停止的工作。 注意: 当我说停止时,我并不是说工作终止了。问题在于显示暂停的进程。

execvp("/bin/ps", parmList);

我必须使用 ps 命令。在这种情况下,是否可以同时显示 运行 和已停止(暂停)的进程?

有两种方法可以解决:

1) 持续监控进程的状态变化。

2) 注册一个处理程序,以便在状态更改时获得异步通知。

1st case

执行一个持续监控进程状态的脚本。 您必须将 ps 与 BSD 样式选项一起使用,即

ps axo pid,stat

2nd case

您只能监控子进程。 如果它们是子进程,您可以使用 waitpid() 监视它们。

所以,基本上您注册了一个信号处理程序,并在该处理程序中使用 waitpid 来获取状态。

您会在此处找到解释的信号: [http://linux.die.net/man/2/waitpid][1]