Флажок «Включить действия для остановок с ошибками» был введен в Windows Vista и Windows Server 2008, предоставляя одну неловкую строку документации :
Выберите Включить действия для остановок с ошибками , чтобы инициировать действия восстановления, которые служба остановила с ошибкой.
SC.exe программа была также обновлена , чтобы обеспечить новую команду: failureflag
. Документация показывает плохой пример и на самом деле не относится к Windows Server 2003, но говорит о том , что команда:
Указывает, будут ли действия по восстановлению запускаться при остановке службы в результате ошибки.
Итак, флажки и sc failureflag
используются для установки одинакового флага.
Давайте наберем sc failureflag
командную строку, мы наконец получим вполне приличное описание:
Изменяет настройку флага действий при сбое службы. Если этот параметр равен 0 (по умолчанию), диспетчер управления службами (SCM) разрешает настраиваемые действия при сбое в службе, только если процесс службы завершается со службой в состоянии, отличном от SERVICE_STOPPED. Если этот параметр равен 1, SCM разрешает настроенные действия при сбое в службе, если служба переходит в состояние SERVICE_STOPPED с кодом выхода Win32, отличным от 0, в дополнение к завершению процесса службы, как описано выше. Этот параметр игнорируется, если для службы не настроены какие-либо действия при сбое.
Подобное описание можно найти здесь .
Итак, правильный ответ на исходный вопрос: настроенные действия восстановления всегда вступают в силу, когда ваша служба не завершает работу в состоянии SERVICE_STOPPED. Необходимо включить «Включить действия для остановок с ошибками», если необходимо включить действия восстановления также, когда ваша служба переходит в состояние SERVICE_STOPPED, при условии, что код выхода не равен 0 (ошибка).