【发布时间】:2017-08-09 14:17:15
【问题描述】:
我用 C 编写了一个程序。我在主进程中执行 fork(),以便在分叉的子进程中执行 execve() 以执行未知应用程序(由用户在命令行中提供)。我知道已执行应用程序的进程的 PID - 它由 fork() 返回,但这个未知的应用程序可能会 fork() 多次,我不知道它所有子进程的 PID(它们是主要父进程的孙子进程)。如何检查主父进程WHEN 其子进程(它是未知应用程序)和未知应用程序退出的ALL 子进程? (我什至不知道它可以有多少个孩子,我也不知道这些孩子的 PID)。
【问题讨论】:
-
我很确定您无法通过正常方式做到这一点。也许涉及
ptrace的事情? -
应用程序应该照顾它的孩子。您不必担心它们。
-
@klutt 这不是重复的,因为我的答案无法通过查找不是直接子进程的进程 ID 来解决。
-
@PSkocik 我不担心。我只需要知道它们什么时候都退出。