Windows server перезапуск службы по расписанию

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

Как сделать автоматический запуск(перезапуск) службы windows по расписанию? С таким вопросом я столкнулся совсем недавно, участвуя в одном из проектов по своей работе. Решение оказалось достаточно простым.

Службы windows

Настройка автоматического запуска или перезапуска службы осуществляет в два простых шага:

  1. Шаг 1 — создать сценарий запуска/перезапуска службы.
  2. Шаг 2 — создать задачу и настроить расписание ее выполнения.

Создание сценария для службы

Сценарий запуска/перезапуска службы представляет собой обычный батник (bat-файл), который будет содержать команды:

1. Для запуска службы

net start [Имя службы] - запуск службы

2. Для перезапуска службы

net stop [Имя службы] - остановка службы
net start [Имя службы] - запуск службы

Пример файла перезапуска службы windows

В качестве примера использована служба KMService.

Итак, создаем батник (bat-файл) с командами для перезапуска службы, который будет содержать две строки:

net stop KMService
net start KMService

Для обеспечения автоматического выполнения сценария перезапуска службы по расписанию: создается специальная задача, которая будет выполнять сценарий (запускать батничек).

Создание задачи в windows

Для создания задачи необходимо перейти в «Панель управления», кликнув в меню «Пуск» на пункт «Панель управления».

Пуск. Панель управления

Далее, переходим в раздел «Администрирование».

Раздел администрирование

В разделе «Администрирование» необходимо выбрать пункт «Планировщик заданий».

Планировщик заданий

В окне «Планировщик заданий» кликаем правой кнопкой мыши на «Планировщик заданий» и выбираем пункт меню «Создать задачу».

Запуск служб windows по расписанию

В окне «Создание задачи» указываем Имя задачи, ставим галочку «Выполнить с наивысшими правами» и переходим на вкладку «Триггеры».

Запуск служб windows по расписанию

На вкладке «Триггеры» отображаются задаются условия запуска задачи. Для того чтобы создать расписание задачи перезапуска службы нажимаем на кнопку «Создать».

Запуск служб windows по расписанию

Заполняем параметры расписания задачи по перезапуску службы windows и нажимаем кнопку «Ок».

Запуск служб windows по расписанию

После создания расписания запуска задачи, необходимо указать наш сценарий(батничек), который должен выполнятся по расписанию. Для этого, переходим на вкладку «Действия» и нажимаем кнопку «Создать».

Запуск служб windows по расписанию

В окне «Создание действия» выбираем действие — «Запуск программы». После этого, нажимаем на кнопку «Обзор», ищем и выбираем наш файл со сценарием и нажимаем на кнопку «Ок».

И наконец, в окне «Создание задачи» нажимаем на кнопку «Ок».

Запуск служб windows по расписанию

Готово! Если все было сделано правильно, то задача будет выполняться по расписанию и будет перезапускать выбранную службу windows.

0 / 0 / 0

Регистрация: 04.04.2018

Сообщений: 11

1

04.04.2018, 07:02. Показов 41933. Ответов 14


Здравствуйте! Если есть профессионалы PowerShell помогите написать скрипт на перезапуск служб на сервере по субботам и воскресеньям каждые 15 мин.
Спасибо

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



1882 / 1106 / 426

Регистрация: 22.01.2016

Сообщений: 3,050

04.04.2018, 12:06

2

Цитата
Сообщение от 1marcus
Посмотреть сообщение

написать скрипт на перезапуск служб на сервере по субботам и воскресеньям каждые 15 мин.

Создаёте в планировщике Windows задание для выполнения powershell.exe с параметрами:

Код

-ExecutionPolicy Bypass -NonInteractive -NoProfile -NoLogo -Command "&{Stop-Service Spooler; Start-Service Spooler}"

и настраиваете нужное расписание для повторных запусков.



0



0 / 0 / 0

Регистрация: 04.04.2018

Сообщений: 11

04.04.2018, 12:19

 [ТС]

3

Если вас не затруднит:
1.Покажите,пожалуйста,на скринах(Создаёте в планировщике Windows задание для выполнения powershell.exe с параметрами)
2.Возможно ли все-таки средствами Powershell написать такой скрипт?



0



KDE777

1882 / 1106 / 426

Регистрация: 22.01.2016

Сообщений: 3,050

04.04.2018, 12:26

4

Цитата
Сообщение от 1marcus
Посмотреть сообщение

1.Покажите,пожалуйста,на скринах(Создаёте в планировщике Windows задание для выполнения powershell.exe с параметрами)

Запуск PowerShell скриптов по расписанию

Use the Windows Task Scheduler to Run a Windows PowerShell Script

Цитата
Сообщение от 1marcus
Посмотреть сообщение

2.Возможно ли все-таки средствами Powershell написать такой скрипт?

Весь скрипт на Powershell выглядит так (перезапуск службы «Диспетчер печати»):

PowerShell
1
Stop-Service Spooler; Start-Service Spooler

А вот для запуск по расписанию нужен планировщик.



0



0 / 0 / 0

Регистрация: 04.04.2018

Сообщений: 11

04.04.2018, 13:07

 [ТС]

5

Спасибо большое,буду пробывать. Вопросы появяться напишу

Добавлено через 13 минут
Код, который вы указали(Код

-ExecutionPolicy Bypass -NonInteractive -NoProfile -NoLogo -Command «&{Stop-Service Spooler; Start-Service Spooler
)
получается нужно вставить в самом планировщике во вкладку «действия» затем «создать» и тут в активную строку «программа или сценарий»?
Можете часть кода расшифровать,а именно ExecutionPolicy Bypass -NonInteractive -NoProfile -NoLogo -Command «&



0



1882 / 1106 / 426

Регистрация: 22.01.2016

Сообщений: 3,050

04.04.2018, 13:25

6

Цитата
Сообщение от 1marcus
Посмотреть сообщение

Код, который вы указали получается нужно вставить в самом планировщике во вкладку «действия» затем «создать» и тут в активную строку «программа или сценарий»?

Действие это — запуск программы, имя программы powershell.exe, а код показанный в ответе #2 нужно прописать в поле «Добавить аргументы» (Add arguments)

Перезапуск служб на сервере по субботам и воскресеньям каждые 15 минут

Цитата
Сообщение от 1marcus
Посмотреть сообщение

Можете часть кода расшифровать,а именно ExecutionPolicy Bypass -NonInteractive -NoProfile -NoLogo -Command «&

Это параметры для запуска powershell.exe, все они подробно описаны, если перейти по первой ссылке из моего предыдущего ответа.



0



0 / 0 / 0

Регистрация: 04.04.2018

Сообщений: 11

05.04.2018, 07:44

 [ТС]

7

Доброе утро!
Спасибо, огромное, за ответы.
Если у меня имеется 2 службы то код будет выглядеть так? ExecutionPolicy Bypass -NonInteractive -NoProfile -NoLogo -Command «&{Stop-Service crypmail; Start-Service crypmail; Stop-Service crypoutmail; Start-Service crypoutmail;}»

Добавлено через 45 минут
Похоже, не работает

В чем может быть причина?

Вложения

Тип файла: rar 1.rar (243.4 Кб, 9 просмотров)



0



KDE777

1882 / 1106 / 426

Регистрация: 22.01.2016

Сообщений: 3,050

05.04.2018, 09:44

8

Цитата
Сообщение от 1marcus
Посмотреть сообщение

Если у меня имеется 2 службы

PowerShell
1
Stop-Service crypmail,crypoutmail; Start-Service crypmail,crypoutmail

или строчка с параметрами:

Код

-ExecutionPolicy Bypass -NonInteractive -NoProfile -NoLogo -Command "&{Stop-Service crypmail,crypoutmail; Start-Service crypmail,crypoutmail}"

Добавлено через 1 минуту

Цитата
Сообщение от 1marcus
Посмотреть сообщение

В чем может быть причина?
Вложения 1.rar

Покажите нормальный скриншот



0



0 / 0 / 0

Регистрация: 04.04.2018

Сообщений: 11

05.04.2018, 11:21

 [ТС]

9

Пожалуйста,распакуйте архив,там вордовкий файл со скринами.Напрямую с сервера не могу снять,т.к права ограничены



0



KDE777

05.04.2018, 11:54

Не по теме:

Цитата
Сообщение от 1marcus
Посмотреть сообщение

Пожалуйста,распакуйте архив,там вордовкий файл со скринами.

Спасибо, но в таком виде пусть смотрит кто-нибудь другой :)



0



0 / 0 / 0

Регистрация: 04.04.2018

Сообщений: 11

05.04.2018, 16:47

 [ТС]

11

KDE777
Вот скрины)

Кликните здесь для просмотра всего текста



0



1882 / 1106 / 426

Регистрация: 22.01.2016

Сообщений: 3,050

05.04.2018, 17:21

12

Цитата
Сообщение от 1marcus
Посмотреть сообщение

Вот скрины

Ещё раз прочитайте мой ответ:

Цитата
Сообщение от KDE777
Посмотреть сообщение

Действие это — запуск программы, имя программы powershell.exe, а код показанный в ответе #2 нужно прописать в поле «Добавить аргументы» (Add arguments)

Никаких файлов start.ps1 я вам создавать не предлагал и тем более писать в Powershell-скрипте параметры для запуска powershell.exe!



0



0 / 0 / 0

Регистрация: 04.04.2018

Сообщений: 11

09.04.2018, 11:47

 [ТС]

13

KDE777: Подскажите, а можно это реализовать в виде скрипта на PowerShell? Т.е. нужен сам скрипт чтобы отрабатывал перезапуск служб по выходным.



0



Maks

Модератор

Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows

6871 / 3818 / 477

Регистрация: 13.03.2013

Сообщений: 14,058

Записей в блоге: 9

03.05.2018, 08:27

14

Цитата
Сообщение от 1marcus
Посмотреть сообщение

Здравствуйте! Если есть профессионалы PowerShell помогите написать скрипт на перезапуск служб на сервере по субботам и воскресеньям каждые 15 мин.
Спасибо

Есть алтернативное решение, например, написать батник

Windows Batch file
1
2
3
@echo off
net stop имя_службы
net start имя_службы

Далее, создать задание в планировщике с требуемыми триггерами (выходные, каждые 15 мин.) и указать путь к данному скрипту.
К слову сказать, у меня так ежедневно на боевом серваке рестартятся службы SQL и 1С.



0



1882 / 1106 / 426

Регистрация: 22.01.2016

Сообщений: 3,050

03.05.2018, 12:20

15

Цитата
Сообщение от Maks
Посмотреть сообщение

создать задание в планировщике с требуемыми триггерами (выходные, каждые 15 мин.) и указать путь к данному скрипту

Именно это, и было сразу же предложено автору темы — запускать нужный скрипт из планировщика. Однако 1marcus, хочет получить реализацию функционала планировщика с помощью непосредственно скрипта

Цитата
Сообщение от 1marcus
Посмотреть сообщение

нужен сам скрипт чтобы отрабатывал перезапуск служб по выходным



0



Profile picture for user Олег

Windows Server

Имеем Windows Server 2012 R2. Задача — автоматически перезагружать сервер каждый понедельник в 5 утра. Приступаем.

Запускаем Планировщик заданий, создаём в нём папку «reboot»:

reboot

Делаем Create Basic Task… Запускается мастер:

reboot

Указываем Name, Description:

reboot

Кликаем Next:

reboot

Выбираем период Weekly. Next:

reboot

Указываем начало — ближайший понедельник 5 утра. Ставим галку Monday. Next:

reboot

Выбираем Start a program. Next:

reboot

В Program/script: пишем:

%SYSTEMROOT%System32shutdown.exe

В Add arguments (optional):

/r /f /t 90 /d p:0:0 /c "Перезапуск по понедельникам. Отмена: shutdown.exe /a"

Где:

  • /r — перезагрузка,
  • /f — принудительное закрытие всех приложений,
  • /t 90 — время ожидания до начала перезагрузки 90 сек,
  • /d p:0:0 — причины перезагрузки для журнала. В данном случае, мы указали: p — запланированная перезагрузка, 0:0 — «Other (planned)»,
  • /c  комментарий в свободной форме длинной не более 512 символов. Комментарий будет показываться юзерам 90 секунд. За это время можно отменить перезагрузку командой shutdown.exe /a.

Список параметров и причин перезагрузки можно посмотреть shutdown.exe /?

reboot

Мастер не доделали, кликаем Finish. Создаётся задача  — редактируем её.

win

Ставим Run whether user is logged on or not. Добавим галку Run with highest privileges. Ok:

reboot

Нас попросят ввести имя пользователя, от имени которого будет выполняться задание. И пароль. Готово:

win

Сам пока не проверял результатов. В ближайший понедельник посмотрим…

P.S.

Две недели прошло — шедулер нормально перезагружает сервер по понедельникам.

  • Remove From My Forums

 locked

Запуск службы с помощью планировщика.

  • Вопрос

  • Коллеги, добрый день. Пытаюсь создать задание в планировщике для запускаостановки необходимых служб по расписанию. Конечно можно сделать с помощью батника, но это не интересно:)

    Создал задание, настроил запуск от пользователя «Администратор» и выполнять вне  зависимости от регистрации пользователя.

    Добавил действие. Запуск программы C:WindowsSystem32net.exe start «Name_services».

    При запуске выдает last result 0x2.

    На Windows Server 2012  такой шаблон запуска служб у меня работает. В чем может быть причина?

Ответы

  • Проблему решил. Помогло добавление пользователя в политику «Вход в качестве пакетного задания».

    • Предложено в качестве ответа

      30 августа 2016 г. 10:41

    • Помечено в качестве ответа
      Anton Sashev Ivanov
      30 августа 2016 г. 10:53

Известно, что при функционировании рабочих процессов сервера 1С Предприятия 8.1 rphost.exe существует следующая проблема: из-за особенностей платформы, с подключением каждого нового клиента к рабочему процессу, увеличивается размер занимаемой рабочим процессом оперативной памяти. При этом, при отключении клиента, занимаемый при подключении объем не освобождается. Так же объем памяти, занимаемый рабочим процессом может увеличиваться при выполнении программного кода. Данное поведение называется “Утечками памяти” или “Memory Leaks”. В итоге, когда объем занимаемой памяти процессом rphost.exe вырастает больше опеределенного предела (в моем случае это было >1Gb), рабочий процесс безусловно перезапускается. Понятно, что клиенты, подключенные к этому процессу, получают сообщение, что соединение с сервером разорвано, прекращают работу и вынуждены переподключаться. В зависимости от количества пользователей и количества запущенных рабочих процессов, данная проблема возникает с той или иной частотой. В моем случае — пользователей порядка 60 и один рабочий процесс, подобная ситуация возникала до 5 раз в неделю. Т.е. ни о какой стабильной работе системы 1С Предприятие в этом случае речь не идет.

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

Второй и вполне логичный шаг — автоматический перезапуск процессов на сервере, о чем, собственно, и хочется написать.

Поскольку служба агента сервера 1С Предприятия представляет собой стандартную службу, в арсенале Windows есть стандартный способ остановки и запуска служб из командной строки командами net stop и net start. Достаточно эти команды лишь включить в bat-файл и настроить шедулер на запуск bat-файла по расписанию, я настроил перезапуск один раз в сутки, в ночное время. Следует иметь ввиду, что если перезапускать рабочие процессы в рабочее время, все подключенные к серверу 1С Предприятия клиенты будут отключены!
Кроме того, чтобы немного разнести по времени команды остановки и запуска службы, будем использовать известную утилиту sleep.exe, которую легко найти в Сети.

Примерный текст bat-файла restart1c.bat:

rem @echo off
rem ----- начало скрипт остановки и запуска агента сервера 1С Предприятия----
set logfile="stopstartlog.txt"
set timeout=20
echo %date% %time% >>%logfile%
net stop "1C:Enterprise 8.1 Server Agent" >>%logfile%
c:scriptssleep %timeout%
echo %date% %time% >>%logfile%
net start "1C:Enterprise 8.1 Server Agent" >>%logfile%
c:scriptssleep %timeout%
rem ----- конец скрипт остановки и запуска агента сервера 1С Предприятия----

Объяснение используемых переменных и команд:
* logfile — файл stopstartlog.txt, куда будут записываться результаты выполнения команд, размещается в том же каталоге, что и сам bat-файл;
** timeout — время в секундах;
*** c:scripts — каталог, где предполагается разместить программу sleep.exe, bat-файл и лог-файл;

Из этого же bat-файла можно сразу после перезапуска процессов запускать скрипт бэкапа средствами 1С Предприятия. В этом случае у вас гарантированно не будет подключен ни один клиент.
Необходимая ремарка: у пользователя, под которым будет выполняться задание по перезапуску службы должны быть соответствующие права на остановку и запуск служб сервера.

Источники:

  • материалы форума www.mista.ru;
  • Документация по платформе 1С Предприятие 8.1;
  • Документация по продуктам MS Windows;


Windows, Windows 10, Windows 11, Windows 7, Windows 8, Windows Server, Windows Vista, Windows XP

  • 19.10.2022
  • 694
  • 0
  • 1
  • 1
  • 0

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

  • Содержание статьи
    • Настройка перезапуска службы Windows
    • Добавить комментарий

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

Настройка перезапуска службы Windows

  1. Открываем консоль управления службами, и находим нужную службу.
  2. Открываем свойства нужной службы, и переходим на вкладку «Восстановление».
  3. На данной вкладке можно настроить поведение службы при её непредвиденном завершении. При этом, есть возможность настроить различные действия для первого, второго и последующего завершения работы.

    Для выбора доступны следующие действия:

    • Не выполнять никаких действий — в таком случае, ничего не будет делаться.
    • Перезапуск службы — служба будет повторно запущена.
    • Запуск программы — можно запустить программу или скрипт, например скрипт для отправки оповещения по электронной почте.
    • Перезагрузка компьютера — как должно быть понятно из названия данного пункта, компьютер будет перезагружен.

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

  • На главную
  • Категории
  • Прочее
  • Автоматический перезапуск службы агента сервера 1С — скрипт + расписание

Добрый день. Поступила заявка от 1С-ников, что необходимо ночью перезапускать службу агента сервера 1С на 8-ке. Как многим известно, что данную службу просто так нельзя «перезапустить», иначе зависшие сессии так и остаются «висеть», ее необходимо сначала остановить, а после снова запустить. Порывшись немного в интернете, пересмотрев кучу скриптов — собрал из многообразия один, не большой, полностью рабочий, уже оттестировал его на серверах, теперь выкладываю на ваше обозрение и пользование.

2017-10-12 09:53:53215

Автоматический перезапуск службы агента сервера 1С - скрипт + расписание

Скрипт перезапуска службы агента сервера 1С

В данном разделе я приведу скрипт .bat, который у меня получился, а так же дам краткое описание того, что за что отвечает в моем случае.

Собственно сам скрипт:

@echo off

set logfile="C:!Distrscriptstopstartlog.txt" echo %date% %time% >>%logfile%
net stop "1C:Enterprise 8.3 Server Agent (1640)" >>%logfile%
ping -n 16 localhost>Nul echo %date% %time% >>%logfile%
net start "1C:Enterprise 8.3 Server Agent (1640)" >>%logfile%
ping -n 301 localhost>Nul SetLocal EnableExtensions
Set ProcessName=1C:Enterprise 8.3 Server Agent (1640)
TaskList /FI "ImageName EQ %ProcessName%" | Find /I "%ProcessName%" If %ErrorLevel% NEQ 0 net start "1C:Enterprise 8.3 Server Agent (1640)"
exit

Давайте рассмотрим его подробнее:

  1. Первым делом отключаем уведомления о выполнении, пусть это все работает в фоновом режиме
  2. Далее указываем где будет хранится наш лог-файл, куда будет писаться дата и время запуска и остановки службы (можно не писать лог, но на всякий случай пусть будет)
  3. Пишем в Лог дату и время начала остановки
  4. Останавливаем службу агента сервера, в моем случае она называется так — 1C:Enterprise 8.3 Server Agent (1640) и пишем ее статус в лог файл (ниже приведу пример что в логе появляется)
  5. Далее делаем задержку в 15 секунд, чтобы дождаться, пока служба останавливается (пинг равен примерно 1 секунде, первый проходит моментально, поэтому делаем время в секундах +1)
  6. Опять записываем в лог дату в время
  7. Запускаем службу обратно
  8. Делаем задержку в 5 минут, если служба не остановилась за 15 секунд, то она не запустится естественно, что то видимо зависло сильно и будем ждать 5 минут.
  9. Далее проверяем, запустилась ли служба и работает ли она? Если не работает, то выполняем ее повторный старт.
  10. Завершаем работу с cmd.

Все, вот такой вот получился скрипт. Я не программист, поэтому может он не совсем верный с точки зрения выполнения сценариев и программного кода, но для меня важно, чтобы это работало — а это работает! Данный скрипт у меня выполняется каждый день, каждый час с 00:00 до 7:00, но об этом позже.

Пример лог файла:

12.10.2017 0:00:00,10

Служба "Агент сервера 1С:Предприятия 8.3 (1640)" останавливается.....

Служба "Агент сервера 1С:Предприятия 8.3 (1640)" успешно остановлена.

12.10.2017 0:00:15,33

Служба "Агент сервера 1С:Предприятия 8.3 (1640)" запускается.

Служба "Агент сервера 1С:Предприятия 8.3 (1640)" успешно запущена.

12.10.2017 1:00:00,15

Служба "Агент сервера 1С:Предприятия 8.3 (1640)" останавливается....

Служба "Агент сервера 1С:Предприятия 8.3 (1640)" успешно остановлена.

12.10.2017 1:00:15,37

Служба "Агент сервера 1С:Предприятия 8.3 (1640)" запускается.

Служба "Агент сервера 1С:Предприятия 8.3 (1640)" успешно запущена.

Настройка выполнения *.bat по расписанию

Как я уже говорил выше, выполнение скрипта у меня происходит автоматически, каждый день он запускается ежечасно с 00:00 до 7:00. Сейчас я расскажу, как это сделано у меня.

Для начала идем в «Пуск -> панель управления -> Администрирование» и запускаем там «Планировщик заданий«.

Выбираем пункт «Создать задачу«:

На вкладке «Общие» задаем имя задания, его описание и пользователя, от которого оно будет выполняться. По умолчанию там будет пользователь, под которым вы вошли в данный момент в систему.

Далее идем в закладку Триггеры и настраиваем, когда нам надо запускать задачу.  В моем случае это ежедневно выполнять в 00:00 и повторять ее каждый час в течении 7 часов.

Далее идем во вкладку Действия и создаем действие на выполнения скрипта.

Все, на этом все готово.  Как можем увидеть в журнале, задача с такими параметрами успешно выполняется и ровно то время, которое у нас задано в скрипте:

Заключение

Вот так не очень сложно создается скрипт на перезапуск службы агента сервера 1С и настраивается его расписание. Я думаю что многие итак знают как сделать одно или второе, но я думаю что кому то это пригодится. Если у Вас возникнут проблемы или вопросы — задавайте их в комментариях, постараюсь помочь чем смогу. Если будут какие-то дополнения или предложения — с удовольствием тоже выслушаю.

Так же можно почитать про скрипт — удаление файлов старше n дней

Максим Орлов

Ваш покорный слуга — компьютерщик широкого профиля: системный администратор, вебмастер, интернет-маркетолог и много чего кто. Вместе с Вами, если Вы конечно не против, разовьем из обычного блога крутой технический комплекс.

Понравилась статья? Поделить с друзьями:
  • Windows server отказано в доступе к указанному устройству
  • Windows server ознакомительные версии в чем отличие
  • Windows server ограничение по памяти для пользователя
  • Windows server ограничение на количество ядер
  • Windows server ограничение доступа в интернет