分叉应用程序崩溃后采取措施

Take action after forked application crash

我想做一件事,但我不知道这是否可行。

我的应用启动时在控制台中显示一些消息

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

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

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

但是屏幕被 Qt 最后绘制的内容冻结了,我的消息没有显示在屏幕上。如何清除屏幕并再次显示控制台以查看我的消息?

终于找到问题所在了。问题是子进程的 kill 方法。之前我用

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

并且进程在没有任何控制的情况下停止了,留下了屏幕状态。有

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

进程正确停止,控制返回到我的主程序。