我目前在我的c程序中使用Linux命令来显示一组进程。但是当进程停止(暂停)时,此命令不会列出它。我需要列出正在运行和已停止的作业。 注意:当我说停止时,我并不意味着终止工作。问题在于显示暂停的进程。
execvp("/bin/ps", parmList);
我必须使用ps命令。反正在这种情况下是否显示正在运行和已停止(暂停)的进程?
答案 0 :(得分:0)
有两种方法可以解决这个问题:
1)持续监控状态变化的过程。
2)注册处理程序,以便在状态发生变化时异步通知。
第一个案例
执行一个不断监视进程状态的脚本。 你必须使用ps和BSD风格的选项,即
ps axo pid,stat
第二案
您只能监控子进程。
您可以使用waitpid()
监控它们,前提是它们是子进程。
所以,基本上你为信号注册一个处理程序,在处理程序中你使用waitpid来获取状态。
你会发现这里解释的信号: [http://linux.die.net/man/2/waitpid][1]