如何创建崩溃时重新启动的服务

2024-03-01

我正在使用创建服务CreateService http://msdn.microsoft.com/en-us/library/ms682450%28VS.85%29.aspx。如果该服务发生崩溃,它将再次正常运行,并且我希望 Windows 在崩溃时重新启动该服务。我知道可以从服务 MSC 中进行设置,请参见下文。

如何以编程方式将服务配置为在发生崩溃时始终重新启动。


使用了 Deltanine 的方法,但对其进行了一些修改,以便能够控制每个失败操作:

SERVICE_FAILURE_ACTIONS servFailActions;
SC_ACTION failActions[3];

failActions[0].Type = SC_ACTION_RESTART; //Failure action: Restart Service
failActions[0].Delay = 120000; //number of milliseconds to wait before performing failure action = 2minutes
failActions[1].Type = SC_ACTION_RESTART;
failActions[1].Delay = 120000;
failActions[2].Type = SC_ACTION_NONE;
failActions[2].Delay = 120000;

servFailActions.dwResetPeriod = 86400; // Reset Failures Counter, in Seconds = 1day
servFailActions.lpCommand = NULL; //Command to perform due to service failure, not used
servFailActions.lpRebootMsg = NULL; //Message during rebooting computer due to service failure, not used
servFailActions.cActions = 3; // Number of failure action to manage
servFailActions.lpsaActions = failActions;

ChangeServiceConfig2(sc_service, SERVICE_CONFIG_FAILURE_ACTIONS, &servFailActions); //Apply above settings
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何创建崩溃时重新启动的服务 的相关文章

随机推荐