How to create service which restarts on crash

Viewed 9750

I am creating a service using CreateService. The service will run again fine if it happens to crash and I would like to have Windows restart the service if it crashes. I know it is possible to set this up from the services msc see below.

Windows Service Recovery Dialog

How can I programatically configure the service to always restart if it happens to crash.

3 Answers

The answer above will give you the gist... but it wont compile.

try:

SERVICE_FAILURE_ACTIONS sfa;
SC_ACTION actions;

sfa.dwResetPeriod = INFINITE;
sfa.lpCommand = NULL;
sfa.lpRebootMsg = NULL;
sfa.cActions = 1;
sfa.lpsaActions = &actions;

sfa.lpsaActions[0].Type = SC_ACTION_RESTART;
sfa.lpsaActions[0].Delay = 5000; 

ChangeServiceConfig2(hService, SERVICE_CONFIG_FAILURE_ACTIONS, &sfa)
Related