Менеджер кластера rmngr: запуск агента 1С в Windows и Linux
Содержание
Чтобы запустить «шину» сервера 1С, то есть менеджер кластера rmngr, отдельно его стартовать не нужно: достаточно запустить агент сервера ragent. В Windows это служба «Агент сервера 1С:Предприятия 8.3», в Linux — юнит systemd srv1cv8-<версия>@default. Агент сам поднимает rmngr на порту 1541 и рабочие процессы rphost из диапазона 1560–1591.
Ручной запуск ragent из командной строки выбирают для отладки или нестандартных портов. Службу — для постоянной работы. Консоль администрирования подключается уже к работающему агенту и сама ничего не запускает.
«1С:Шина» — это ещё и отдельный продукт фирмы 1С для интеграции систем. Здесь речь о серверном кластере платформы 8.3: агент, менеджер кластера и рабочие процессы.
Как устроен сервер 1С: агент, менеджер кластера, рабочие процессы
Сервер 1С:Предприятия — это не один процесс, а связка из трёх. У каждого своя роль и свой порт.
| Процесс | Роль | Порт по умолчанию |
|---|---|---|
ragent | Агент сервера: принимает первое подключение клиента и консоли, запускает остальные процессы | 1540 |
rmngr | Менеджер кластера: реестр баз, сеансы, блокировки, распределение нагрузки | 1541 |
rphost | Рабочий процесс: выполняет серверный код конфигурации | 1560–1591 |
ras | Сервер администрирования для утилиты rac (запускается отдельно) | 1545 |
Путь клиента такой:
- 🔌 Клиент обращается к агенту на 1540.
- 🧭 Агент передаёт его менеджеру кластера на 1541.
- ⚙️ Менеджер назначает рабочий процесс, и дальше клиент общается с
rphostпо порту из диапазона.
Диапазон портов рабочих процессов задаётся в свойствах рабочего сервера. Если брандмауэр пропускает только 1540 и 1541, клиент увидит ошибку на третьем шаге.
Не запускайте rmngr.exe вручную при работающем агенте: второй менеджер кластера займёт или не сможет занять порт, а агент потеряет контроль над своим процессом. Правильный путь — управлять агентом.
Запуск сервера 1С в Windows через службу
Установщик платформы создаёт службу, если при установке отмечен компонент «Сервер 1С:Предприятия 8» и флажок установки как сервиса Windows.
Запуск через оснастку «Службы»
- Нажмите
Win+R, введитеservices.msc. - Найдите «Агент сервера 1С:Предприятия 8.3 (x86-64)». Если на сервере стоит несколько версий платформы, в имени будет номер версии.
- Откройте свойства и проверьте тип запуска — «Автоматически».
- На вкладке «Вход в систему» должна стоять учётная запись
USR1CV8или другая служебная запись с паролем. - Нажмите «Запустить».
Запуск из командной строки
Точное имя службы отличается между версиями, поэтому сначала найдите его:
sc query state= all | findstr /i "1C:Enterprise"
Затем запустите службу по найденному имени (командная строка от имени администратора):
net start "1C:Enterprise 8.3 Server Agent (x86-64)"
В PowerShell то же самое:
Get-Service | Where-Object DisplayName -like "*1С*"
Start-Service -Name "1C:Enterprise 8.3 Server Agent (x86-64)"
Если службы нет
Её можно зарегистрировать самим ragent.exe. Пример для платформы, установленной в стандартный каталог:
cd "C:\Program Files\1cv8\8.3.24.1467\bin"
ragent.exe -instsrvc -usr .\USR1CV8 -pwd ПарольСлужбы -port 1540 -regport 1541 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
ragent.exe -start
Подставьте свою версию платформы. Ключ -rmsrvc удаляет службу, -stop останавливает её.
Остановка или перерегистрация службы обрывает все сеансы пользователей на сервере. Делайте это вне рабочего времени или после предупреждения пользователей.
Открыть порты в брандмауэре Windows
Служба может работать идеально, а клиенты с других компьютеров всё равно не подключатся. Причина — закрытые порты. Одно правило закрывает агент, менеджер кластера и рабочие процессы:
netsh advfirewall firewall add rule name="1C Server" dir=in action=allow protocol=TCP localport=1540-1541,1560-1591
Если вы меняли диапазон ключом -range, впишите в правило свой диапазон. Порт 1545 добавляйте, только если с других машин будут подключаться к ras.
Ручной запуск агента и менеджера кластера в Linux
В Linux порядок зависит от того, как ставилась платформа.
Установка единым дистрибутивом (systemd)
Современные версии ставятся в /opt/1cv8/x86_64/<версия>/. Рядом с бинарниками лежит шаблон юнита srv1cv8-<версия>@.service. Его нужно подключить к systemd:
sudo systemctl link /opt/1cv8/x86_64/8.3.24.1467/srv1cv8-8.3.24.1467@.service
sudo systemctl enable srv1cv8-8.3.24.1467@default
sudo systemctl start srv1cv8-8.3.24.1467@default
sudo systemctl status srv1cv8-8.3.24.1467@default
Экземпляр default использует стандартные порты 1540/1541 и диапазон 1560–1591. Параметры экземпляра задаются через переменные окружения юнита; посмотреть их можно командой systemctl cat.
Старые пакетные установки (init-скрипт)
Если платформа стоит из deb- или rpm-пакетов старых сборок, используется скрипт:
sudo /etc/init.d/srv1cv83 start
Порты и каталог данных для него задаются в конфигурационном файле скрипта (в RHEL-подобных системах — /etc/sysconfig/srv1cv83).
Запуск вручную без службы
Подходит для проверки: процесс работает, пока открыт терминал или пока его не остановят. Запускайте от пользователя usr1cv8, а не от root, иначе каталог кластера получит неправильного владельца:
sudo -u usr1cv8 /opt/1cv8/x86_64/8.3.24.1467/ragent \
-port 1540 -regport 1541 -range 1560:1591 \
-d /home/usr1cv8/.1cv8/1C/1cv8 -daemon
Через несколько секунд в списке процессов должны появиться ragent и rmngr:
ps -eo user,pid,cmd | grep -E "ragent|rmngr|rphost" | grep -v grep
Параметры командной строки ragent
Одни и те же ключи работают при ручном запуске, в параметрах службы Windows и в systemd. Основные:
| Ключ | Что задаёт | Пример |
|---|---|---|
-port | Порт агента | -port 1540 |
-regport | Порт менеджера кластера (rmngr) | -regport 1541 |
-range | Диапазон портов для процессов кластера | -range 1560:1591 |
-d | Каталог данных кластера (srvinfo) | -d "D:\srvinfo" |
-debug | Разрешает отладку серверного кода | -debug |
-srvc | Работа в режиме службы Windows | ставит установщик |
-daemon | Работа в фоне (Linux) | -daemon |
Второй кластер на одном сервере
Частая задача — поднять рядом второй экземпляр, например для тестовой версии платформы. Ему нужны свои порты и свой каталог:
ragent.exe -instsrvc -usr .\USR1CV8 -pwd ПарольСлужбы -port 2540 -regport 2541 -range 2560:2591 -d "C:\Program Files\1cv8\srvinfo2"
Клиент тогда подключается к серверу как ИмяСервера:2541. В строке подключения указывают порт менеджера кластера, а не агента.
Отладка на сервере
Ключ -debug включает возможность отлаживать серверный код из Конфигуратора. На рабочем сервере держать его включённым постоянно не стоит: это лишняя нагрузка. Чтобы добавить ключ к службе Windows, проще всего перерегистрировать её с нужными параметрами (-rmsrvc, затем -instsrvc).
Консоль сервера 1С: как открыть и подключиться
Консоль «Администрирование серверов 1С Предприятия» — оснастка MMC. Она ставится вместе с компонентом «Администрирование сервера 1С:Предприятия» и появляется в меню «Пуск».
Если ярлык есть, но оснастка не открывается или пишет об ошибке создания компонента, зарегистрируйте библиотеку той версии платформы, на которой работает сервер:
regsvr32 "C:\Program Files\1cv8\8.3.24.1467\bin\radmin.dll"
После этого:
- Откройте консоль, щёлкните правой кнопкой по «Central 1C:Enterprise 8.3 servers».
- Выберите создание нового центрального сервера.
- Укажите имя компьютера и порт агента — 1540 (не 1541).
- Раскройте сервер: в узле «Кластеры» появится кластер с портом 1541, внутри — базы, сеансы и рабочие процессы.
Версия radmin.dll должна совпадать с версией сервера. Если на ПК администратора стоит другая платформа, консоль подключится с ошибкой несовпадения версий.
Консоль через ras и rac
Для Linux и для скриптов есть сервер администрирования ras и утилита rac. Сначала запускают ras, указав адрес агента:
/opt/1cv8/x86_64/8.3.24.1467/ras cluster --daemon --port=1545 localhost:1540
Потом проверяют кластер:
/opt/1cv8/x86_64/8.3.24.1467/rac cluster list localhost:1545
В Windows ras обычно регистрируют отдельной службой через sc create с ключом --service. Остальные подкоманды rac смотрите в справке rac help.
Почему агент или rmngr не запускается: диагностика
Начинайте с трёх проверок: что пишет служба, кто держит порты, есть ли процессы.
Проверка портов
Windows:
netstat -ano | findstr ":1540 :1541"
tasklist /fi "PID eq 4321"
Linux:
sudo ss -tlnp | grep -E ":154[01]"
Если порт занят чужим процессом, агент не стартует или стартует без менеджера кластера. Освободите порт или переведите экземпляр на другие порты ключами из таблицы выше.
Где смотреть ошибки
- 📄 Windows — «Просмотр событий» → «Журналы Windows» → «Приложение» и «Система», источник с названием 1С.
- 📄 Linux —
journalctl -u srv1cv8-8.3.24.1467@default -n 100. - 🧾 Подробнее — технологический журнал через
logcfg.xmlв каталогеconfплатформы.
Очистка кэша кластера
Если после аварийного завершения сервер ведёт себя странно (зависшие сеансы, ошибки при входе), помогает удаление сеансовых данных. Остановите службу, затем удалите папки snccntx* внутри srvinfo\reg_1541 и запустите службу снова.
Делайте это только при остановленной службе, когда пользователи вышли из баз. Файл 1CV8Clst.lst (список баз кластера) не трогайте: без него кластер «забудет» все зарегистрированные базы.
Автозапуск и контроль работы сервера 1С
Сервер должен подниматься сам после перезагрузки и после падения процесса.
Windows
Тип запуска службы — «Автоматически». На вкладке «Восстановление» в свойствах службы задайте перезапуск при первом и втором сбое. То же из командной строки:
sc failure "1C:Enterprise 8.3 Server Agent (x86-64)" reset= 86400 actions= restart/60000/restart/60000//
Здесь служба перезапускается через минуту после первого и второго сбоя, счётчик сбоев сбрасывается раз в сутки.
Linux
systemctl enable уже включает автозапуск. Чтобы systemd перезапускал упавший агент, добавьте переопределение:
sudo systemctl edit srv1cv8-8.3.24.1467@default
и впишите:
[Service]
Restart=on-failure
RestartSec=30
Простой мониторинг
Достаточно проверять порт агента и наличие кластера. Пример для cron в Linux:
#!/bin/bash
# check_1c.sh: пишет в syslog, если агент 1С не отвечает на 1540
if ! ss -tln | grep -q ":1540 "; then
logger -t check_1c "Агент сервера 1С не слушает порт 1540"
fi
В Windows аналогичную проверку делает Test-NetConnection -ComputerName localhost -Port 1540 в PowerShell. Результат отправляйте в свою систему мониторинга (Zabbix, почта, мессенджер).
Частые вопросы
Можно ли запустить rmngr без ragent?
ragent, поэтому управлять нужно агентом или службой.Почему в консоли я подключаюсь к 1540, а в базе указываю 1541?
Нужна ли лицензия, чтобы запустить сервер 1С?
Сколько процессов rphost должно быть после запуска?
Можно ли запустить сервер 1С двух версий на одном компьютере?
-port, -regport, -range) и свой каталог -d. Клиент должен быть той же версии, что и сервер, к которому он подключается.