在 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]
我目前在我的 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]