实现服务器崩溃后自动重启,只需添加一个守护进程即可。

守护进程实现

新建 main.cpp,编写守护进程逻辑:

#include "windows.h"

int main()
{
	  while(1)
	{
		STARTUPINFO si;

		PROCESS_INFORMATION pi;

		ZeroMemory( &pi, sizeof(pi) );

		ZeroMemory( &si, sizeof(si) );

		si.cb = sizeof(si);

		CreateProcess( "LiteHttpSrv.exe", NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi );
		WaitForSingleObject( pi.hProcess, INFINITE);
		Sleep(3000);
	}

 return 0;

}

该守护进程会持续监控子进程的运行状态。一旦检测到 LiteHttpSrv.exe 崩溃退出,等待 3 秒后自动重新启动。可以在守护进程中加入日志记录逻辑,以便保存崩溃现场信息。

禁用崩溃弹窗

在 LiteHttp 的 main 函数入口处添加以下调用,防止程序崩溃时弹出系统错误对话框,确保守护进程能够正常检测到退出事件:

SetErrorMode(SEM_NOGPFAULTERRORBOX);//main函数入口处添加