Скрипт перезапуска службы агента сервера 1С
В данном разделе я приведу скрипт .bat, который у меня получился, а так же дам краткое описание того, что за что отвечает в моем случае.
Собственно сам скрипт:
@echo off
set logfile="C:\!Distr\script\stopstartlog.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
Давайте рассмотрим его подробнее:
- Первым делом отключаем уведомления о выполнении, пусть это все работает в фоновом режиме
- Далее указываем где будет хранится наш лог-файл, куда будет писаться дата и время запуска и остановки службы (можно не писать лог, но на всякий случай пусть будет)
- Пишем в Лог дату и время начала остановки
- Останавливаем службу агента сервера, в моем случае она называется так - 1C:Enterprise 8.3 Server Agent (1640) и пишем ее статус в лог файл (ниже приведу пример что в логе появляется)
- Далее делаем задержку в 15 секунд, чтобы дождаться, пока служба останавливается (пинг равен примерно 1 секунде, первый проходит моментально, поэтому делаем время в секундах +1)
- Опять записываем в лог дату в время
- Запускаем службу обратно
- Делаем задержку в 5 минут, если служба не остановилась за 15 секунд, то она не запустится естественно, что то видимо зависло сильно и будем ждать 5 минут.
- Далее проверяем, запустилась ли служба и работает ли она? Если не работает, то выполняем ее повторный старт.
- Завершаем работу с cmd.
Пример лог файла:
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 дней
Den dobrii, a zachem perezapuskat kazhdii chas???? vrode dostatochno odnogo raza....
Добрый! Да, одного раза вполне достаточно, но делалось это по ТЗ 1С-ников, поэтому выложил как есть, может требуется еще кому то так. Если вам необходимо 1 раз, просто не устанавливайте повтор в дополнительных параметрах.
Спасибо, работает, адаптировал его под некоторые свои нужды
Не за что! Рад, что вам пригодилось! =)
http://tehnopost.info/computer/27-zaderjka-v-bat-files.html timeout /t 15 /nobreak
Alexandepz 19.12.2018 08:53
Лог сохраняется в CP866, а надо бы таки в 1251-й. Добавляю в начало батника chcp 1251, но тогда он вообще отказывается исполняться. В чём может быть проблема?
Уточню. Смысл в том, что cmd по умолчанию работает в этой кодировке, и соответственно на выходе в текстовике лога получаются классические кракозябы из-за того, что ни несчастный блокнот, ни даже Word не понимают этой кодировки. Лезть в реестр с целью исправления этой проблемы точно не хочется, т.к. это повлияет не только на кодировку в утилите командной строки, а на всю ОС. Есть ли другие обходные пути решения этого вопроса?
Виталий 20.12.2018 14:26
Странно, у меня именно этим скриптом выполняется и я блокнотом открываю лог и все читается
Виталий! Выражаю огромную благодарность, перерыл много сайтов и самый простой и действительно рабочий скрипт у вас!
Очень рад, что Вам помогло!
Так перезагружая сервер выкидываются пользователи как избежать выкидывание пользователей?*
Эммм, перезапустить службу 1С и при этом не выкинуть пользователей?... Ну наверное никак..
не помешает рег.задание на блокировку ИБ с соответствующим описанием перед тем как всех выкинет без предупреждения
Ян 20.05.2019 11:36
Спасибо! Отличный скрипт - все работает!
Влад 25.10.2019 11:18
Не получается Результат последнего запуска: (0x000013A) если просто запустить bat Системе не удается найти указанный путь. Системе не удается найти указанный путь.
Влад 25.10.2019 11:20
Извиняюсь, не заменил set logfile="C:!Distrscriptstopstartlog.txt" На свой путь ниндзя
Влад 25.10.2019 11:21
Теперь правда Неправильное имя службы. Для вызова дополнительной справки наберите NET HELPMSG 2185.
Влад 25.10.2019 11:27
В свойствах службы вверху 1C:Enterprise 8.3 Server Agent (x86-64)