Остановка / запуск службы - обработка STOP_PENDING и START_PENDING - PullRequest
4 голосов
/ 13 августа 2011

Как вы делаете свои сервисные сценарии остановки / запуска, изящно обрабатывающие сервисы, застрявшие в STOP_PENDING или START_PENDING ...

Связанные с SC STOP и START. Остановить и запустить службу через пакетный или cmd-файл?

Я имею в виду один подход, но он мне не нравится.

Ответы [ 3 ]

4 голосов
/ 13 августа 2011

Вот так я подхожу к остановке.

  • Stop: sc% host% stop% service% || ЭХО ОШИБКА! && EXIT -1
  • Цикл ожидания состояния остановлено. Цикл с максимальным количеством итераций (например, 30). Проверка, остановлена ​​ли служба (например, sc% host% query% service% | find / i "STOPPED"). Подождите несколько секунд в каждой итерации (например, 10). Достигнув максимальных итераций, попытайтесь завершить процесс с помощью taskkill (например, обработайте вывод sc queryex Alerter | find / i "PID").
3 голосов
/ 23 мая 2017

Иногда для меня зависает «служба Windows», когда у меня открыто окно services.msc. Я не могу убить процесс, ни использовать net stop или sc stop.

Но когда я закрываю окно services.msc, служба немедленно останавливается.

1 голос
/ 02 июля 2018

Сначала откройте service.msc , в диалоговом окне свойств для вашей целевой службы перейдите на вкладку Recovery * (run -> services.msc -> щелкните правой кнопкой мыши Target-Service -> Свойства -> вкладка Восстановление *)

Убедитесь, что для Первый \ Второй \ Последующий Сбои все установлены на: Не предпринимать никаких действий .enter image description here

Получите PID вашей целевой службы, используя: sc queryex ServiceName :

Завершите процесс, используя taskkill / f/ pid your_PID_number

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...