При развертывании нескольких экземпляров кластера серверов 1С:Предприятие различных версий на одном физическом сервере или виртуальной машине системные администраторы часто сталкиваются со следующей проблемой: служба Windows успешно стартует, однако ровно через 15–20 секунд самопроизвольно завершает свою работу. При этом журнал событий ОС (Event Viewer) фиксирует только факты запуска и остановки без указания конкретного кода ошибки.
Разберем подробно, почему возникает подобный таймаут и какими способами можно вернуть службу сервера 1С в рабочее состояние.
Промежуток времени в 15–20 секунд после старта — это стандартный таймаут, в течение которого главный процесс агент сервера ragent.exe пытается инициализировать кластер, привязать сетевые сокеты, проверить аппаратные ключи защиты и прочитать файлы конфигурации. Если на одном из этих этапов возникает критический сбой, процесс корректно завершает работу.
Проанализируем основные причины такого поведения:
1CV8Reg.lst, 1cv8wsrv.lst) в папке служебной информации srvinfo.rmngr.exe или rphost.exe, удерживающие сетевые соединения.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services вместо штатной регистрации службы.Как показывает практика, при параллельной установке нескольких версий платформы или при сбое реестра кластера наиболее эффективным решением оказывается очистка данных кластера.
Рассмотрим пошагово порядок действий:
-d (например, C:\Program Files\1cv82\srvinfo_2_16).1CV8Reg.lst.Не рекомендуется регистрировать новые службы 1С путем ручного экспорта и импорта веток реестра ControlSet001 или ControlSet002. Это часто приводит к ошибкам разрядности (x86 vs x64) и некорректному экранированию путей в параметре ImagePath.
Правильный способ создания службы — использование штатного ключа -instsrvc через командную строку от имени Администратора:
"C:\Program Files\1cv8\8.3.23.1865\bin\ragent.exe" -instsrvc -usr ".\1c_user" -pwd "Password123" -port 1640 -regport 1641 -range 1660:1691 -d "C:\Program Files\1cv8\srvinfo_1640"
Разберем значение ключевых параметров:
-srvc — запуск процесса в режиме службы Windows.-agent — запуск агента кластера.-port — порт агента кластера (по умолчанию 1540). Для каждой новой службы значение должно быть уникальным (например, 1640, 1740).-regport — порт менеджера кластера (по умолчанию 1541). Должен отличаться от других служб (например, 1641, 1741).-range — диапазон рабочих портов для процессов rphost (по умолчанию 1560:1591). Не должен пересекаться с диапазонами других служб.-d — изолированный путь к рабочему каталогу кластера.Если служба продолжает останавливаться через 20 секунд, проверим, не заняты ли указанные порты другими процессами или зависшими экземплярами 1С.
Сначала принудительно завершим все возможные «сиротские» процессы через командную строку:
taskkill /F /IM ragent.exe /T
taskkill /F /IM rmngr.exe /T
taskkill /F /IM rphost.exe /T
Затем убедимся, что диапазон портов 1С не перехватывается операционной системой Windows для динамических подключений. Для этого выделим используемый диапазон портов в исключения с помощью утилиты netsh:
netsh int ipv4 add excludedportrange tcp startport=1640 numberofports=60
Если служба запускается от имени специально созданного локального или доменного пользователя (а не под учетной записью LocalSystem), проанализируем настройки прав доступа:
bin и служебную папку srvinfo на уровне файловой системы NTFS.secpol.msc).Чтобы мгновенно увидеть точную ошибку без ожидания таймаута службы Windows и изучения системных журналов, выполним интерактивный запуск процесса.
Для этого остановим службу и запустим ragent.exe напрямую из командной строки с теми же параметрами, но без флага -srvc:
"C:\Program Files\1cv82\8.2.16.352\bin\ragent.exe" -agent -debug -regport 11541 -port 11540 -range 11560:11591 -d "C:\Program Files\1cv82\srvinfo_2_16"
При таком запуске текст ошибки, сообщение об отсутствии ключа защиты HASP или предупреждение о невозможности занять порт отобразятся непосредственно в консоли, что позволит быстро определить и устранить неисправность.