我使用以下命令配置服务故障恢复
sc failure "service" actions= ""/60000/restart/60000/run/120000 reset= 60 command = "\"c:\\windows\notepad2.exe
(用于测试的notepad2.exe)
来自Microsoft文档here: -
操作
此字段包含指定的整数值数组 如果服务失败,SCM采取的行动。将值分开 数组由[〜]。数组第N个元素中的整数值 指定服务在第N次失败时执行的操作 时间。
所以,我从中得到的是失败的数量将决定行动=>对于第一次失败,将执行操作[0],并且将执行第二个操作[1],并且对于所有后续失败,操作[2]将
我有用于测试此行为的服务的以下配置: -
然后我尝试使用taskkill
来杀死运行服务的进程。
然后我再次尝试在约2分钟后终止服务(=>重置计数会将失败计数设置为0,因为它配置为1分钟)。
在上图中,很清楚为什么count重置为0,因为我们reset
设置60 sec
并且我们的服务运行时间超过2 mins
。
但是为恢复描述的操作是错误的,因为重新启动服务是第二次失败的操作,而不是第一次失败。
那么为什么失败的计数是1,但恢复的行动是与第二次失败行动相对应的行动?