且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用恢复操作安装 Windows 服务以重新启动

更新时间:2022-05-30 22:23:47

您可以使用 sc.以下将设置服务在失败后重新启动:

You can set the recovery options using sc. The following will set the service to restart after a failure:

sc failure [servicename] reset= 0 actions= restart/60000

这可以很容易地从 C# 调用:

This can easily be called from C#:

static void SetRecoveryOptions(string serviceName)
{
    int exitCode;
    using (var process = new Process())
    {
        var startInfo = process.StartInfo;
        startInfo.FileName = "sc";
        startInfo.WindowStyle = ProcessWindowStyle.Hidden;

        // tell Windows that the service should restart if it fails
        startInfo.Arguments = string.Format("failure "{0}" reset= 0 actions= restart/60000", serviceName);

        process.Start();
        process.WaitForExit();

        exitCode = process.ExitCode;
    }

    if (exitCode != 0)
        throw new InvalidOperationException();
}