Как зарегистрировать ragent.exe службой и запустить его от нужной учётной записи

· 9 мин

Содержание

Агент сервера 1С ставится как служба Windows двумя путями: галочкой «Установить 1С:Предприятие 8 как сервис Windows » в инсталляторе платформы или вручную командой ragent.exe -instsrvc (либо sc create) из каталога bin нужной версии. В обоих случаях служба запускает ragent.exe с ключами -srvc -agent, портами 1540/1541, диапазоном 1560:1591 и каталогом данных кластера srvinfo.

Ручная регистрация нужна чаще, чем кажется: после обновления платформы, при второй копии сервера на той же машине, при смене учётной записи или когда служба пропала после неудачного удаления старой версии. Главное правило при любой переустановке: указывать тот же каталог данных кластера -d, что и раньше. Тогда список информационных баз, администраторы кластера и настройки рабочих серверов сохранятся, а пользователи после перезапуска подключатся к тем же базам.

Что проверить на сервере до установки службы

Агент сервера — это процесс ragent.exe. Он слушает порт 1540, запускает менеджер кластера rmngr.exe (порт 1541) и рабочие процессы rphost.exe из диапазона портов. Все три живут под одной учётной записью службы.

Перед установкой проверьте:

  • 🖥️ Разрядность. 64-битный сервер ставится из дистрибутива «Технологическая платформа (64-bit)» или полного серверного дистрибутива. Клиентский дистрибутив серверных компонентов не содержит.
  • 🔌 Свободные порты. Выполните netstat -ano | findstr ":1540 :1541". Если порт занят, по PID в «Диспетчере задач» найдите процесс — часто это старый ragent.exe другой версии.
  • 📁 Каталог данных кластера. По умолчанию C:\Program Files\1cv8\srvinfo. Для боевого сервера его обычно выносят на отдельный диск, например D:\srvinfo. Здесь лежит реестр кластера и сеансовые данные.
  • 👤 Учётная запись. Решите заранее: локальный USR1CV8, который создаёт инсталлятор, или доменная служебная учётка. Для кластера из нескольких машин удобнее доменная.
  • 🔑 Лицензии. Если используется программная лицензия сервера, у учётной записи службы должен быть доступ на чтение к C:\ProgramData\1C\licenses.
  • 🛡️ Брандмауэр. Входящие правила TCP для 1540, 1541 и 1560–1591.
Готовность сервера к регистрации службы
Выполнено: 0 / 6

Регистрация агента сервера 1С службой: инсталлятор, ragent и sc

Способ 1. Через установщик платформы

  1. Запустите setup.exe серверного дистрибутива от имени администратора.
  2. В списке компонентов включите «Сервер 1С:Предприятия 8» (и «Администрирование сервера 1С:Предприятия», если нужна консоль на этой машине).
  3. На шаге с параметрами сервера отметьте «Установить 1С:Предприятие 8 как сервис Windows».
  4. Оставьте «Создать пользователя USR1CV8» с паролем или выберите существующего пользователя.
  5. Дождитесь окончания установки и проверьте службу в services.msc.

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

Способ 2. Ключ -instsrvc у ragent.exe

Откройте командную строку от имени администратора и перейдите в каталог нужной версии:

cd "C:\Program Files\1cv8\8.3.24.1691\bin"
ragent.exe -instsrvc -usr .\USR1CV8 -pwd "Пароль" -port 1540 -regport 1541 -range 1560:1591 -d "D:\srvinfo" -debug
ragent.exe -start

Что означают ключи:

КлючНазначение
-instsrvc / -rmsrvcзарегистрировать / удалить службу
-usr, -pwdучётная запись и пароль, от которых работает служба
-portпорт агента (по умолчанию 1540)
-regportпорт менеджера кластера (по умолчанию 1541)
-rangeдиапазон портов рабочих процессов
-dкаталог данных кластера
-debugразрешить отладку на сервере (для боевого сервера обычно убирают)
-start / -stopзапустить / остановить зарегистрированную службу

Номер версии в пути подставьте свой — он совпадает с именем папки в C:\Program Files\1cv8.

Способ 3. sc create — полный контроль над именем

Когда на машине несколько версий или нужны говорящие имена служб, удобнее sc. Пробелы после = обязательны — без них команда не сработает:

sc create "1C:Enterprise 8.3 Server Agent (x86-64)" binPath= "\"C:\Program Files\1cv8\8.3.24.1691\bin\ragent.exe\" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d \"D:\srvinfo\" -debug" start= auto obj= ".\USR1CV8" password= "Пароль" DisplayName= "Агент сервера 1С:Предприятия 8.3 (x86-64)"

Ключи -srvc -agent в binPath обязательны: первый говорит, что процесс работает как служба, второй — что это агент сервера.

СпособКогда подходитРиски
Инсталляторпервая установка, стандартные портыне задать свой srvinfo и порты
ragent -instsrvcпереустановка службы после обновленияимя службы выбирается автоматически
sc createнесколько экземпляров, свои именалегко ошибиться в кавычках и пробелах

Учётная запись службы и права, без которых агент не стартует

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

Что ей нужно:

  1. Право «Вход в качестве службы». secpol.msc → Локальные политики → Назначение прав пользователя → «Вход в качестве службы». В домене это право может перезаписывать групповая политика — тогда добавляйте учётку в GPO, иначе после следующего обновления политик служба перестанет запускаться.
  2. Полный доступ к каталогу srvinfo.
  3. Чтение и выполнение для каталога C:\Program Files\1cv8.
  4. Членство в группе «Пользователи журналов производительности» (Performance Log Users) — сервер собирает счётчики производительности, без этого в журналах появляются ошибки доступа.
  5. Доступ к каталогам, куда пишет технологический журнал и куда выгружаются файлы обработками.

Сменить учётную запись у готовой службы можно в services.msc → свойства службы → вкладка «Вход в систему». Или командой:

sc config "1C:Enterprise 8.3 Server Agent (x86-64)" obj= "CORP\svc-1c" password= "Пароль"

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

С доменной учётной записью СУБД-сервер можно настроить на проверку подлинности Windows, но чаще базу на MS SQL или PostgreSQL подключают под отдельным логином СУБД — это не зависит от пользователя службы.

Почему служба агента сервера 1С не запускается: журналы и диагностика

Первое место, куда смотреть, — «Просмотр событий» → Журналы Windows → «Приложение» и «Система». Источник событий агента — 1С:Предприятие 8.

Диагностика: выберите симптом

Запуск агента в консольном режиме

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

Остановка службы обрывает все сеансы пользователей на сервере. Делайте это вне рабочего времени или после предупреждения.

cd "C:\Program Files\1cv8\8.3.24.1691\bin"
ragent.exe -agent -port 1540 -regport 1541 -range 1560:1591 -d "D:\srvinfo"

Так процесс запускается от вашей учётной записи. Если вручную всё работает, а службой нет — проблема почти наверняка в правах пользователя службы.

Технологический журнал

Для сложных случаев включите технологический журнал файлом logcfg.xml в каталоге conf (общем C:\Program Files\1cv8\conf или bin\conf конкретной версии). Минимальная настройка — события EXCP и CONN:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="D:\1c_logs" history="24">
    <event><eq property="name" value="EXCP"/></event>
    <event><eq property="name" value="CONN"/></event>
    <property name="all"/>
  </log>
</config>

У учётной записи службы должны быть права на запись в D:\1c_logs. history — сколько часов хранить файлы. Не оставляйте подробный журнал включённым надолго: он быстро занимает диск.

Запуск, остановка и автозагрузка службы

Основные команды:

sc query "1C:Enterprise 8.3 Server Agent (x86-64)"
sc qc "1C:Enterprise 8.3 Server Agent (x86-64)"
net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
net start "1C:Enterprise 8.3 Server Agent (x86-64)"

sc qc показывает путь к ragent.exe, тип запуска и учётную запись — это главная проверка после обновления платформы.

Тип запуска

Если СУБД стоит на той же машине, ставьте отложенный автозапуск. Так агент не поднимется раньше SQL Server или PostgreSQL:

sc config "1C:Enterprise 8.3 Server Agent (x86-64)" start= delayed-auto

Перезапуск при сбое

Во вкладке «Восстановление» свойств службы задайте «Перезапуск службы» для первого и второго сбоя. То же командой:

sc failure "1C:Enterprise 8.3 Server Agent (x86-64)" reset= 86400 actions= restart/60000/restart/60000//

Пауза в 60 секунд даёт системе освободить порты. Счётчик сбоев обнуляется через сутки (reset= 86400). Если служба падает каждый день, автоперезапуск только маскирует проблему: загляните в журнал событий и технологический журнал.

Переход на новую версию платформы

  1. Установите новую версию платформы, не удаляя старую.
  2. Сделайте копию каталога srvinfo.
  3. В нерабочее время остановите службу (сеансы пользователей оборвутся).
  4. Удалите старую службу: sc delete "имя службы" или ragent.exe -rmsrvc из каталога старой версии.
  5. Зарегистрируйте службу из каталога bin новой версии с тем же -d и портами.
  6. Запустите службу и проверьте в консоли, что кластер и базы на месте.

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

Несколько экземпляров агента и кластер из нескольких серверов

Два агента на одной машине

Например, рабочий кластер на 8.3.24 и тестовый на 8.3.25. Каждому — свои порты, свой srvinfo и своё имя службы:

ЭкземплярПорт агентаМенеджерДиапазонКаталог
Рабочий154015411560:1591D:\srvinfo
Тестовый254025412560:2591D:\srvinfo_test

Клиенты тестового сервера указывают порт в строке подключения: Srvr="server1:2541";Ref="test_buh";. Консоль администрирования подключают к агенту по порту 2540.

Кластер из нескольких рабочих серверов

На каждой машине кластера ставится своя служба агента. Правила:

  • 🔢 Одна и та же версия платформы на всех серверах кластера — с точностью до последней цифры номера.
  • 👤 Одна доменная учётная запись для служб на всех машинах — проще с правами на общие ресурсы.
  • 🌐 Разрешение имён. Серверы обращаются друг к другу по имени компьютера, поэтому имена должны разрешаться с каждой машины (DNS или hosts).
  • 🔌 Порты 1540, 1541 и диапазон рабочих процессов открыты между всеми серверами.

Второй сервер добавляют в консоли администрирования: кластер → «Рабочие серверы» → «Создать» → «Рабочий сервер», с именем компьютера и портом его агента. Параметры отказоустойчивости и требования назначения функциональности задаются в свойствах рабочего сервера.

Для отказоустойчивости 1С использует собственный механизм резервирования кластера, а не отказоустойчивый кластер Windows. Регистрировать ragent.exe ресурсом Failover Cluster Manager не нужно.

Частые вопросы

Можно ли запустить агент сервера 1С под учётной записью «Локальная система»?
Можно, служба запустится. Но рабочие процессы получат полные права на сервер, поэтому для боевых систем используют отдельного пользователя вроде USR1CV8.
Где хранится список информационных баз кластера?
В каталоге данных кластера, который задан ключом -d. Пока при переустановке службы указан тот же каталог, базы остаются зарегистрированными.
Как узнать, какая версия платформы запущена службой?
Выполните sc qc с именем службы: в строке BINARY_PATH_NAME будет путь вида 1cv8\8.3.x.xxxx\bin\ragent.exe.
Нужен ли перезапуск сервера Windows после установки службы?
Нет. Достаточно запустить службу через services.msc, net start или ragent.exe -start.
Почему после обновления платформы клиенты пишут о несовпадении версий?
Служба всё ещё запускает ragent.exe старой версии. Перерегистрируйте службу из каталога bin новой версии.