分叉应用程序崩溃后采取行动

时间:2017-12-28 13:44:57

标签: c++ unix process fork posix

我想做一件事,但我不知道这是可能的。

我的应用程序以控制台中的一些消息开头

std::cout << "appStart" << std:endl

之后,子Qt进程会在帧缓冲区(屏幕)中绘制。如果我的Qt进程出现故障,我可以捕获它并终止Qt进程,我想在控制台中显示一条消息

std::cout << "app CRASH!" << std:endl

但屏幕被冻结,最后一次内容被Qt抽取,我的消息未显示在屏幕上。如何清除屏幕并再次显示控制台以查看我的消息?

1 个答案:

答案 0 :(得分:0)

最后我发现了这个问题。问题是子进程的kill方法。以前我用

关闭了图形流程
SIGKILL     9   /* Kill, unblockable (POSIX).  */

并且该过程在没有任何控制的情况下停止,离开屏幕状态。与

#define SIGTERM     15  /* Termination (ANSI).  */

正确停止进程并将控件返回到我的主程序。