Автоматический перезапуск службы — Autoit скрипт

Перезапуск службы Аutoit

Появилась проблема со службой и для того, чтобы временно решить её необходимо периодически перезапускать службу. Перезапуск помогает примерно на два часа и потом приходится снова выполнять перезапуск.

Задача:

  • Найти имя нужной службы;
  • Остановить службу;
  • Запустить службу;
  • Повторять эти действия каждые два часа.

Решение:

Для решения моей задачи мне пришлось найти имена сервисов которые необходимо перезапустить. Заходим через  поиск в services или через «Панель управления» -> «Администрирование» -> «Службы». Находим нужную службу и кликаем на неё два раза и получаем имя службы.

services

 

Функция для операций со службой

Функция _Service_Proc имеет два параметра:

  • $sService — имя сервиса;
  • $sAction — действие.

Основную работу выполняет Run посылающий команду «net stop/start Service «, которая приводит либо к завершению, либо к старту службы.

В результате работы этой функции получаем массив $aRet который содержит два элемента:

  • $aRet[0] — указатель дочернего потока STDOUT
  • $aRet[1] — указатель дочернего потока STDERR

Вот пример самой функции:

Ну и конечно сам скрипт перезапуска службы:

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

Запуск функции каждые 2 часа

UDF AdlibRegister  каждые 2 часа (или указанное в параметре time 2*60*60*1000 мс) вызывается указанная функция(_servReboot)

Завершение работы

Ну и для того чтобы завершить работу скрипта можно добавить горячую клавишу F7.

Скрипт готов, исходник можно скачать ниже по ссылке.

[sdm_download id=»726″ fancy=»0″]

Добавить комментарий