Назад | Перейти на главную страницу

Как создать планировщик задач для перезапуска программной службы в Windows Server 2008 R2

У меня есть надоедливое программное обеспечение, которое дает сбой каждые несколько недель. Он состоит из двух компонентов. Служба A и служба B. Служба B переходит в странное состояние и перестает принимать соединения от службы A. Единственный выход - перезапустить обе службы вручную или перезагрузить сервер.

Я хотел бы запланировать перезапуск службы для A и B на регулярной основе. Говорить каждые 24 часа. Как это сделать?

Следуя предложениям в комментариях, я закончил тем, что создал командный файл, содержащий правильную последовательность перезапуска с таймаутами. Тайм-ауты были необходимы из-за зависимостей между службами. Я запланировал его запускать от имени администратора каждую ночь в 4 утра, используя планировщик задач.

net stop "Service B"
net stop "Service A"
timeout /T 10
net start "Service B"
timeout /T 10
net start "Service A"

Это не идеально, но подойдет для этого сценария - развертывание удаленного рабочего стола с менее чем 10 пользователями.

Вместо создания файла bat, который может быть поврежден или отсутствовать, вы можете создать запланированное задание с помощью множественный действия. Одно действие останавливает службу, а другое - перезапускает службу. Оба выполнены с NET команда. Дайте им аргументы STOP и START, за которыми следует имя службы.

NET STOP "Service A" 
NET START "Service A"

Вот сообщение на StackOverflow, объясняющее, как это сделать.

Net Stop "ServiceName" && Net Start "ServiceName"

И вы можете объединить в цепочку && для Stop / Start ServiceB

Net Stop "ServiceA" && Net Start "ServiceA" && Net Stop "ServiceB" && Net Start "ServiceB"

Вы можете создать файл летучей мыши и попробовать что-то в этом роде:

чистая остановка {serviceName} и чистый старт {serviceName}

и использовать bat-файл как программу для запланированного задания.