Answers:
如果您的服务由于错误而停止,并由Windows记录,则是,您需要勾选“启用有错误的停止操作”,否则将不起作用。
如果没有选中此复选框,则它将仅重新启动由于正当或未知原因而停止的服务。
Windows Vista和Windows Server 2008引入了“启用有错误的停止操作”复选框,提供了一个令人尴尬的文档行:
选择“ 为有错误的停止启用操作”,以触发服务因错误而停止的恢复操作。
该SC.exe的程序也被更新,以提供一个新的命令:failureflag
。该文档显示了一个错误的示例,并不真正适用于Windows Server 2003,但是告诉我们该命令:
指定当服务由于错误而停止时是否触发恢复操作。
因此,复选框和sc failureflag
用于设置相同的标志。
让我们sc failureflag
在命令提示符下键入,我们终于得到了一个不错的描述:
更改服务的失败操作标志设置。如果此设置为0(默认值),则仅当服务进程在服务处于SERVICE_STOPPED以外的状态下终止时,服务控制管理器(SCM)才对服务启用已配置的失败操作。如果此设置为1,则除了上述服务进程终止之外,如果服务进入带有非0的Win32退出代码的SERVICE_STOPPED状态,则SCM会对服务启用已配置的失败操作。如果服务未配置任何失败操作,则将忽略此设置。
在这里可以找到类似的描述。
因此,对原始问题的正确答案是:当您的服务不以SERVICE_STOPPED状态终止时,配置的恢复操作将始终生效。如果您的服务进入SERVICE_STOPPED状态时也需要启用恢复操作,则必须选中“为错误停止操作启用”,前提是退出代码不为0(错误)。