c++ - 如何在没有信号的情况下监控子进程?

标签 c++ linux signals ipc

我希望我的父进程能够收到子进程中发生的错误/失败/终止的通知。

我有兴趣知道这是否可以在不使用信号的情况下实现?

最佳答案

您可以使用waitpid()获取 child 的退出状态或wait() 。这将告诉您 child 是否死于自然原因(exit() 或同等原因),或非自然原因(信号,以及核心是否被转储)。您需要允许 SIGCHLD 信号到达您的进程,但默认行为很好。

其他错误就不那么容易被发现了;你需要一些 IPC 机制来中继信息。

关于c++ - 如何在没有信号的情况下监控子进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30339243/

相关文章:

linux - 如何找到其他用户使用bash的目录?

linux - 如何将目录及其子目录中的所有文件复制到另一个目录?

ruby - 在 Ruby 中,如何多次捕获一个信号?

c - Linux 如何确定自定义信号处理程序的优先级?

qt - PyQt:通过信号中断qthread

c++ - 在常量成员的类初始化中

c++ - Eigen C++ : Performance of sparse-matrix manipulations

java - 在 Java 下创建进程变慢?

c++ - OpenMAX 和 NDK : Where I can get the surface?

c++ - 将指针传递给函数并使用 realloc