Как зарегистрировать ragent.exe службой и запустить его от нужной учётной записи
Содержание
Агент сервера 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.
Регистрация агента сервера 1С службой: инсталлятор, ragent и sc
Способ 1. Через установщик платформы
- Запустите
setup.exeсерверного дистрибутива от имени администратора. - В списке компонентов включите «Сервер 1С:Предприятия 8» (и «Администрирование сервера 1С:Предприятия», если нужна консоль на этой машине).
- На шаге с параметрами сервера отметьте «Установить 1С:Предприятие 8 как сервис Windows».
- Оставьте «Создать пользователя USR1CV8» с паролем или выберите существующего пользователя.
- Дождитесь окончания установки и проверьте службу в
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 технически возможен, но так обычно не делают: рабочие процессы получают полный доступ к машине. Правильный вариант — отдельная учётная запись с минимальными правами.
Что ей нужно:
- Право «Вход в качестве службы».
secpol.msc→Локальные политики→Назначение прав пользователя→ «Вход в качестве службы». В домене это право может перезаписывать групповая политика — тогда добавляйте учётку в GPO, иначе после следующего обновления политик служба перестанет запускаться. - Полный доступ к каталогу
srvinfo. - Чтение и выполнение для каталога
C:\Program Files\1cv8. - Членство в группе «Пользователи журналов производительности» (Performance Log Users) — сервер собирает счётчики производительности, без этого в журналах появляются ошибки доступа.
- Доступ к каталогам, куда пишет технологический журнал и куда выгружаются файлы обработками.
Сменить учётную запись у готовой службы можно в 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). Если служба падает каждый день, автоперезапуск только маскирует проблему: загляните в журнал событий и технологический журнал.
Переход на новую версию платформы
- Установите новую версию платформы, не удаляя старую.
- Сделайте копию каталога
srvinfo. - В нерабочее время остановите службу (сеансы пользователей оборвутся).
- Удалите старую службу:
sc delete "имя службы"илиragent.exe -rmsrvcиз каталога старой версии. - Зарегистрируйте службу из каталога
binновой версии с тем же-dи портами. - Запустите службу и проверьте в консоли, что кластер и базы на месте.
💡 Пока путь -d прежний, реестр кластера со списком баз сохраняется. Сменили каталог — кластер окажется пустым, базы придётся регистрировать заново.
Несколько экземпляров агента и кластер из нескольких серверов
Два агента на одной машине
Например, рабочий кластер на 8.3.24 и тестовый на 8.3.25. Каждому — свои порты, свой srvinfo и своё имя службы:
| Экземпляр | Порт агента | Менеджер | Диапазон | Каталог |
|---|---|---|---|---|
| Рабочий | 1540 | 1541 | 1560:1591 | D:\srvinfo |
| Тестовый | 2540 | 2541 | 2560:2591 | D:\srvinfo_test |
Клиенты тестового сервера указывают порт в строке подключения: Srvr="server1:2541";Ref="test_buh";. Консоль администрирования подключают к агенту по порту 2540.
Кластер из нескольких рабочих серверов
На каждой машине кластера ставится своя служба агента. Правила:
- 🔢 Одна и та же версия платформы на всех серверах кластера — с точностью до последней цифры номера.
- 👤 Одна доменная учётная запись для служб на всех машинах — проще с правами на общие ресурсы.
- 🌐 Разрешение имён. Серверы обращаются друг к другу по имени компьютера, поэтому имена должны разрешаться с каждой машины (DNS или
hosts). - 🔌 Порты 1540, 1541 и диапазон рабочих процессов открыты между всеми серверами.
Второй сервер добавляют в консоли администрирования: кластер → «Рабочие серверы» → «Создать» → «Рабочий сервер», с именем компьютера и портом его агента. Параметры отказоустойчивости и требования назначения функциональности задаются в свойствах рабочего сервера.
Для отказоустойчивости 1С использует собственный механизм резервирования кластера, а не отказоустойчивый кластер Windows. Регистрировать ragent.exe ресурсом Failover Cluster Manager не нужно.