Как использовать "sc" для установки службы и указать действие для "последующих сбоев" при восстановлении
Я создал службу в VB.NET и хотел использовать программу " sc " для ее установки. (Мне нужно было упаковать его, чтобы кто-то другой в моей организации мог выполнить фактическую установку.)
Я хотел, чтобы параметры "восстановление" выглядели следующим образом:
- Первая Ошибка: Перезагрузка
- Второй Сбой: Перезагрузка
- Последующие Сбои: Ничего Не Делать
это команда, которую я изначально пытался (после фактического установить):
sc failure MyServiceName reset= 86400 actions= restart/15000/restart/30000
но затем, глядя на службу в GUI, "последующие сбои" также были настроены на перезапуск. Я смотрел так и не мог найти ничего конкретного. В конце концов я понял это, и я публикую это здесь, Если кто-то еще ищет тот же "быстрый" ответ, что и я. И конечно, если у кого есть что предложить, я бы с удовольствием почитала.
2 ответов
Я в конце концов понял, чтобы запустить команду следующим образом:
sc failure MyServiceName reset= 86400 actions= restart/15000/restart/30000//1000
Как только я сделал это и повторно открыл GUI свойств службы, "не предпринимать никаких действий" было показано, как я хотел.
после того, как я начал писать вопрос, я, наконец, нашел этот вопрос SO: https://stackoverflow.com/a/12631379/1812688
хотя, это не было прямым ответом на вопрос
чтобы расширить этот ответ, команда СК тупо нетривиальными, и вам нужно сделать пару вещей:
- вы должны предоставить "сброс" и "действия" в то же время
- вы должны иметь пробел после каждого варианта, так
reset= <number>
, etc - вы не можете предоставить никаких опций для " действия "(несмотря на то, что документация по sc.exe утверждает), но вы можете указать пустые значения, разделенные косой чертой. Все эти 3 команды сделают так, что есть никаких действий ни для одной из 3 попыток
sc failure EraAgentSvc reset= 86400 actions= //
sc failure EraAgentSvc reset= 86400 actions= ////
sc failure EraAgentSvc reset= 86400 actions= //////
и эти команды в конечном итоге получат результат от 'sc qfailure':
C:\Users\Administrator>sc qfailure EraAgentSvc
[SC] QueryServiceConfig2 SUCCESSSERVICE_NAME: EraAgentSvc
RESET_PERIOD (in seconds) : 86400
REBOOT_MESSAGE :
COMMAND_LINE :