我已经完成了拥有 main() 方法和 main() 的程序 mainApp 创建 5 个线程,线程执行一些操作.. 等等。
现在我只是想知道我的程序是否崩溃。所以我要监控我的 mainApp 是否正在工作或停止。如果停止,我将重新启动/重新启动整个系统。
mainApp 和监控程序必须同时运行,并且监控程序应该检查 mainApp 的状态。
任何建议请。
PS:我是 om linux 内核 2.6.29。
我已经完成了拥有 main() 方法和 main() 的程序 mainApp 创建 5 个线程,线程执行一些操作.. 等等。
现在我只是想知道我的程序是否崩溃。所以我要监控我的 mainApp 是否正在工作或停止。如果停止,我将重新启动/重新启动整个系统。
mainApp 和监控程序必须同时运行,并且监控程序应该检查 mainApp 的状态。
任何建议请。
PS:我是 om linux 内核 2.6.29。
除非您想要一个通用监视器,否则您的程序可以监视自己。
当程序第一次启动时,程序本身就是监视器。由于程序刚刚启动,没有“mainApp”在运行,所以它自己分叉了。子进程承担“mainApp”的角色。监视器现在等待子进程终止。当子进程死亡时,它会检查状态,并决定重新启动,然后再次分叉。
int main () {
/*...startup...*/
int status;
bool restart = true;
while (restart) {
pid_t pid = fork();
switch (pid) {
case -1: /* handle error */ exit(EXIT_FAILURE);
case 0: exit(mainApp());
default: break;
}
pid_t child = wait(&status);
assert(child == pid);
restart = check_status(status);
}
/*...cleanup...*/
return 0;
}