How to change the Windows service startup type in

2019-03-17 05:49发布

问题:

We need to modify the Startup type of our Windows service from "Automatic" to "Automatic Delayed Start". How do I do this?

My code is like this:

<ServiceInstall
    Id="WinServiceInstall"
    Name="ServiceManager"
    DisplayName="ServiceManager"
    Type="ownProcess"
    Start="auto"
    ErrorControl="normal"
    Vital ='yes'
    Description ='Monitoring and running the jobs'
    Account="[SERVICEACCOUNT]"
    Password="[SERVICEPASSWORD]">
    <util:ServiceConfig
        FirstFailureActionType="restart"
        SecondFailureActionType="restart"
        ThirdFailureActionType ="restart"
        cRestartServiceDelayInSeconds ="10" />
</ServiceInstall>

And how do I set the Restart service time? I would like to set Restart service after 2 minutes if failed.

回答1:

Place a ServiceConfig element within the ServiceInstall element.

<ServiceConfig DelayedAutoStart="yes" OnInstall="yes" OnReinstall ="yes" />


回答2:

I couldn't figure out how to get the service to use "Automatic Delayed Start" with the ServiceInstall element (since it isn't an option in the enumeration), so I ended up setting it with a reg-value.

<RegistryValue Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\[ServiceName]"
               Type="integer" Name="DelayedAutostart" Value="1"/>

I put this in the same component as the ServiceInstall, and everything seems to work fine. I imagine you could do the same thing for the service restart time.