在linux中输出已停止和正在运行的进程?

时间:2015-10-03 02:10:50

标签: c linux linux-kernel ps

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

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

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

1 个答案:

答案 0 :(得分:0)

有两种方法可以解决这个问题:

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

2)注册处理程序,以便在状态发生变化时异步通知。

  

第一个案例

执行一个不断监视进程状态的脚本。 你必须使用ps和BSD风格的选项,即

ps axo pid,stat
  

第二案

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

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

你会发现这里解释的信号: [http://linux.die.net/man/2/waitpid][1]