分叉应用程序崩溃后采取措施
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). */
进程正确停止,控制返回到我的主程序。
我想做一件事,但我不知道这是否可行。
我的应用启动时在控制台中显示一些消息
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). */
进程正确停止,控制返回到我的主程序。