【问题标题】:How to monitor a child process without signals?如何在没有信号的情况下监控子进程?
【发布时间】:2015-05-20 02:22:14
【问题描述】:
我希望我的父进程收到子进程中发生的错误/失败/终止的通知。
我很想知道在不使用信号的情况下这是否可行?
【问题讨论】:
标签:
c++
linux
signals
ipc
【解决方案1】:
您可以使用waitpid() 或wait() 获取孩子的退出状态。这将告诉您孩子是死于自然原因(exit() 或等效),还是非自然原因(信号,以及核心是否被倾倒)。您需要允许 SIGCHLD 信号到达您的进程,但默认行为很好。
其他错误不是那么容易发现的;你需要一些 IPC 机制来传递信息。