【发布时间】:2013-03-09 18:41:40
【问题描述】:
所以我正在构建自己的 shell,其中一个功能是列出所有后台运行的作业、它们的名称、PID、类似于 bash 的作业编号及其状态,即它是暂停还是运行。我还必须打印刚刚结束的后台作业的退出状态代码。现在我想知道是否有一个系统调用可以为我做这件事,或者一个 C api 调用,一旦它们在后台运行,或者我是否必须编写我自己的工作函数来完成我刚才提到的事情?谢谢。我正在使用 Linux 在 C 中执行此操作。
【问题讨论】:
-
根本不使用系统。系统已经像一个 shell,我需要实现 'ps' 有没有办法获取所有需要的子 pid 等?
-
您是指系统上的所有进程还是只是在 shell 中启动的进程?
-
@teppic 在 shell 中启动的那些。如果您在键入作业时使用 & 在后台放置 5 个命令,我想列出所有 5 个。
-
@RichardMckenna:我猜你必须获得 shell 的 pid 以及与 pstree util 相同的技术。
-
好吧,既然
ps大概是用 C 语言编写的,那么肯定有一种方法可以做你正在尝试的事情......