从子进程中获得终止信号,子进程的进程组ID等于父进程组ID

时间:2019-07-08 12:18:16

标签: linux waitpid

我想在子进程退出/终止时进行一些计算。为了从进程组ID等于父进程组ID的子进程中获取终止信号,我正在使用waitpid()

我在这里使用的waitpid参数是:
pid = 0,表示等待任何进程组ID与调用进程的ID相等的子进程。
Status = status来获取状态。
Options = 0

这是我的cpp代码部分:

while(1) {
    pid = waitpid(0, &status, 0);
    std::cout << "pid: " << pid << " status value: " << status << “ WIFEXITED : ” << WIFEXITED(status) << “ WEXITSTATUS: “ << WEXITSTATUS(status) << std::endl;
    doCalculation();
}

当我尝试运行它时,得到以下结果:

pid: -1 status value: 32767 WIFEXITED : 0 WEXITSTATUS: 127
pid: -1 status value: 32767 WIFEXITED : 0 WEXITSTATUS: 127
pid: -1 status value: 32767 WIFEXITED : 0 WEXITSTATUS: 127
pid: -1 status value: 32767 WIFEXITED : 0 WEXITSTATUS: 127

在这里pid = -1暗示错误

我只想在孩子退出/终止但代码没有停止运行时才进行计算。子进程pid不能存储在我的环境中,因为子进程在很多地方都在创建和终止。
请让我知道我如何才能实现自己的目标。

0 个答案:

没有答案