Перейти к содержимому

Как перезапустить агент сервера 1с

  • автор:

PROИТ

Office 365, AD, Active Directory, Sharepoint, C#, Powershell. Технические статьи и заметки.

Перезапуск агента 1С на кластере не под админом или удаленный рестарт сервиса на Windows Server 2012 R2

Дано: виртуальная машина с ОС Windows Server 2012 R2 (функция сервера — кластер 1С). Установлен сервер 1С 8.3. В службах присутствует агент сервера 1С.
Задача: в некоторых случаях возникает необходимость сделать перезапуск агента 1С, поэтому появилась задача сделать так, чтобы определенные доменные пользователи могли перезапускать службу (агента 1С), не заходя на сам сервер и не имея административных прав (это освобождает администратора от необходимости заходить на сервер и делать перезапуск).

Решение: для перезапуска агента пользователь на своем ПК будет запускать bat-файл, который содержит специальную команду удаленного перезапуска сервиса.

Описание
Настройку делаем в два этапа:
1. Подготовка сервера (кластера 1С) — назначение прав на сервис при помощи специальной утилиты.
2. Подготовка клиента (ПК пользователя) — создание bat-файла для удаленного перезапуска.

ЭТАП 1. Подготовка сервера (кластера 1С) — назначение прав на сервис при помощи специальной утилиты.

Первоначально нужно предоставить определенному пользователю право на перезапуск сервиса.
Самым удобным способом для нас оказалось это — задать права при помощи утилиты SubInACL (скачивайте ее с официального сайта Microsoft).
После установки утилиты SubInACL на кластере при помощи следующей команды можно посмотреть какие права назначены на сервис 1С агента:

В файле service1cAgent.txt в итоге будет примерно такая информация:

Видно, что кроме администраторов никто особых прав не имеет.
Нам нужно назначить права на данный сервис нужному пользователю, например, mydomain\user1.

Сначала попробовали эту команду:

не сработало

При попытке что-то сделать с сервисом почти всегда получали ответ об отсутствии доступа:

В результате экспериментов нашли нужную команду:

Эту команду необходимо запускать на каждого пользователя, которому нужно предоставить права на перезапуск сервиса.

Результат выполнения команды:

LQSETOPI — перечисление предоставляемых пользователю прав.

Расшифровка прав для данной команды:

2. Подготовка клиента (ПК пользователя) — создание bat-файла для удаленного перезапуска.

У пользователя имеющего право на перезапуск сервиса используем утилиту PsService.exe (скачивайте ее с официального сайта Microsoft, установки она не требует).

Проверить доступ к сервису на удаленном сервере можно при помощи команды ниже.
Чтение сервиса под пользователем с другой машины:

Где \\SRV-NODE — это имя сервера (кластера 1С), на котором нужно произвести перезапуск 1С агента.

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

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

При успешном выполнении команды получаем:

Для удобства делаем батник, запускающий данную команду (например, Restart1CAgentOnCluster.bat) и кладем его там же где и утилита psservice.

Содержимое файла Restart1CAgentOnCluster.bat:

Результат выполнения bat-файла на ПК пользователя:

Пользователю понадобится для файла:

  • PsService.exe — утилита командной строки.
  • Restart1CAgentOnCluster.bat — должен лежать в той же папке, что и файл PsService.exe

Т.е. достаточно предоставить пользователю два этих файла и он сможет по запросу делать перезапуск 1С агента на сервере (например, если что-то у кого-то зависло в 1С, а админ в отпуске!)

Как перезапустить агент сервера 1с

В Windows "Панель управление" — "Администрирование" — "Службы"

служба агент сервера 1С предприятие 8 перезапустить как

В списке служб находим в колонке "Имя" "Агент сервера 1С:Предприятия 8.x". Состояние — "Работает". Правой кнопкой на строке названия службы вызываем контекстное меню и нажимаем кнопку меню "Остановить" или "Перезапустить"

1C 8 как остановить агент сервера 1с предприятия

Служба "Агент сервера 1С 8" будет остановлена или перезапущена в соответствии с Вашим выбором. Состояние будет теперь "Отключена".

как остановить перезапустить агент сервера 1С предприятие 8

Чтобы запустить, необходимо там же, правой кнопкой вызвав меню, выбрать пункт "Запустить"

как запустить агент сервера 1С предприятие 8

Служба "Агент сервера 1С 8" будет запущена, если в процессе запуска не возникнут ошибки.

Решение проблемы: агент сервера 1С:Предприятие останавливается

Решаемая задача: в этом материале мы рассмотрим решение такой проблемы, когда агент сервера 1С:Предприятие останавливается.

Возможные причины:

  • Переполнен кэш сервера 1С или закончилось место на диске.
  • Переименован сервер, на котором установлен агент сервера 1С.
  • Повредился файл с настройками кластера 1С.
  • Заняты порты, используемые сервером.

Для выполнения описанных действий требуется учетная запись Администратора.

Первый вариант решения проблемы ‒ изменение портов работы сервера 1С

Запускаем редактор реестра.

Команда запуска редактора реестра

Рисунок 1 — Команда запуска редактора реестра

Находим ветку реестра:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\1C:Enterprise 8.3 Server Agent\

Редактор реестра

Рисунок 2 — Редактор реестра

В свойстве «ImagePath»=, меняем строку:

«-srvc -agent -regport 1541 -port 1540 -range 1560:1591»

Стандартные порты

Рисунок 3 — Стандартные порты

«-srvc -agent -regport 2041 -port 2040 -range 2060:2091»

Изменение портов

Рисунок 4 — Изменение портов

Также в конце строки дописываем “-debug” для включения отладки и подтверждаем изменения.

Добавление отладки

Рисунок 5 — Добавление отладки

Перезапускаем службу 1C:Enterprise 8.3 Server Agent.

Перезагрузка службы

Рисунок 6 — Перезагрузка службы

Второй вариант решения проблемы заключается в увеличении памяти процесса 1С

Шаг 1. Проверяем место на диске С:\, если место мало — чистим.

Шаг 2. Переходим к удалению процессов, если таковые имеются.

Далее по очередности удаляем процессы:

Останавливаем процесс RPHOST

Рисунок 7 — Останавливаем процесс RPHOST

Останавливаем процесс rmngr

Рисунок 8 — Останавливаем процесс rmngr

Останавливаем процесс ragent

Рисунок 9 — Останавливаем процесс ragent

Шаг 3. Чистим папки и файлы srvinfo, чистим кэш и настройки кластера 1С в С:\Program Files\1cv8\srvinfo\reg_1541\ или С:\Program Files(x86)\1cv8\srvinfo\reg_1541\

Шаг 4. Запускаем сервер и проверяем работу служб. Это можно выполнить разными способами. Запустить из «Служб»:

Запуск Службы

Рисунок 10 — Запуск Службы

Или Пуск — Все программы:

Запуск службы из меню Пуск

Рисунок 11 — Запуск службы из меню Пуск

Шаг 5. Проверяем настройки кластера и информационные базы.

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

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

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

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

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

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

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *