Остановка службы агента сервера 1С без потери данных и зависших процессов

· 10 мин

Содержание

Сервер 1С:Предприятия 8.3 отключают остановкой одной службы — агента сервера (ragent.exe). Вместе с ней завершаются менеджер кластера rmngr.exe и рабочие процессы rphost.exe. Остановить службу можно тремя способами: в оснастке «Службы» Windows (разовая ручная остановка), командой net stop или PowerShell (скрипты и плановые работы), а на Linux — через systemctl.

Корректное отключение начинается раньше нажатия кнопки «Остановить»: сначала запрещают новые сеансы, дожидаются выхода пользователей и регламентных заданий, и только потом гасят службу. Если остановить сервер с живыми сеансами, пользователи потеряют несохранённые документы, а фоновые задания оборвутся на середине.

Как устроен сервер 1С и что именно вы останавливаете

Понимание процессов экономит время, когда что-то зависает. В типовой установке на Windows работают:

  • 🔹 ragent.exe — агент сервера. Это и есть служба, слушает порт 1540.
  • 🔹 rmngr.exe — менеджер кластера, порт 1541. Запускается агентом.
  • 🔹 rphost.exe — рабочие процессы, в них выполняется код конфигурации. Порты берутся из диапазона, заданного в свойствах рабочего сервера (по умолчанию 1560:1591).
  • 🔹 ras.exe — сервер администрирования для утилиты rac. Ставится отдельной службой, только если вы его регистрировали. Порт по умолчанию 1545.

Остановка службы агента должна завершить rmngr.exe и все rphost.exe. Служба ras останавливается отдельно — она самостоятельная.

Отключение бывает двух видов:

ЗадачаЧто делатьАвтозапуск
Перезагрузка ОС, обновление платформы, резервное копирование файлов кластераОстановить службуОставить «Автоматически»
Вывод сервера из эксплуатации, перенос на другую машинуОстановить службуПоставить «Отключена»

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

Подготовка к отключению сервера: сеансы и регламентные задания

Остановка службы обрывает все сеансы всех баз кластера. Поэтому сначала решите вопрос с людьми и фоновыми заданиями.

Шаг 1. Посмотрите, кто работает

Откройте консоль Администрирование серверов 1С Предприятия и разверните: имя сервера → Кластеры → кластер → Информационные базы → нужная база → Сеансы. В списке видны пользователь, компьютер, приложение (тонкий клиент, конфигуратор, фоновое задание, COM-соединение) и время начала.

То же самое для всего кластера показывает узел Сеансы на уровне кластера, без раскрытия каждой базы.

Шаг 2. Запретите новые подключения

В свойствах информационной базы (правой кнопкой по базе → Свойства) есть флажки:

  1. Блокировка начала сеансов включена — новые пользователи не смогут войти.
  2. Сообщение блокировки — текст, который увидит пользователь при попытке входа. Например: «Плановые работы на сервере до 22:30».
  3. Код разрешения — строка, с которой администратор всё же сможет зайти (параметр запуска /UC).
  4. Начало и Конец — время действия блокировки. Удобно выставить заранее, на вечер.
  5. Блокировка регламентных заданий включена — сервер перестанет запускать новые фоновые задания.

Для изменения свойств консоль попросит логин и пароль администратора информационной базы, а если у кластера заданы администраторы — ещё и их учётные данные.

Блокировка действует на одну базу. Если в кластере десять баз, а сервер останавливается целиком, пройдите по всем или используйте скрипт с rac из раздела ниже.

Шаг 3. Дождитесь выхода или завершите сеансы

Предупредите пользователей заранее — письмом или в общем чате, с указанием времени. Сама 1С при включённой блокировке с заданным временем начала показывает работающим пользователям предупреждение и завершает их сеансы, но это срабатывает в типовых конфигурациях на БСП и не мгновенно.

Оставшиеся сеансы удаляют вручную: в списке Сеансы выделите строки → правая кнопка → Удалить. Несохранённые данные этих пользователей пропадут.

Готовность к остановке сервера 1С
Выполнено: 0 / 6

Остановка сервера 1С через оснастку «Службы» Windows

Самый наглядный способ для разовой остановки.

  1. Нажмите Win + R, введите services.msc, нажмите Enter.
  2. Найдите службу Агент сервера 1С:Предприятия 8.3 (x86-64). Для 32-разрядного сервера в названии не будет x86-64.
  3. Правая кнопка → Остановить.
  4. Дождитесь, пока в колонке «Состояние» пропадёт статус «Выполняется».
  5. Откройте Диспетчер задач → вкладка Подробности и проверьте, что в списке нет ragent.exe, rmngr.exe, rphost.exe.

Если на сервере стоит несколько версий платформы, служб агента может быть несколько — с разными портами. Свойства службы (двойной щелчок) покажут в поле «Исполняемый файл» полный путь к ragent.exe с номером версии и параметры -port, -regport, -range. По ним понятно, какой кластер вы гасите.

Как отключить автозапуск

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

  1. Двойной щелчок по службе.
  2. Тип запуска → Отключена.
  3. Применить → ОК.

Обратно — тип Автоматически и кнопка Запустить.

Не удаляйте службу ради «полного отключения». Регистрация службы хранит учётную запись, от имени которой работает сервер, и параметры портов. Восстанавливать их потом дольше, чем переключить тип запуска.

Управление кластером в консоли администрирования серверов

Консоль кластера не умеет остановить службу целиком — это делает ОС. Зато в ней удобно погасить часть сервера, не трогая остальное.

Если консоль не открывается

Консоль — это оснастка MMC, которая работает через библиотеку radmin.dll. После установки новой версии платформы консоль часто перестаёт подключаться к серверу: зарегистрирована библиотека старой версии. Перерегистрируйте её из командной строки, запущенной от имени администратора:

regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"

Номер версии в пути подставьте свой — он должен совпадать с версией работающего сервера. Для 64-разрядной консоли берите radmin.dll из 64-разрядной платформы.

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

  • 🔧 Удалить сеансы — точечно или по всей базе (узел Сеансы).
  • 🔧 Посмотреть рабочие процессы (узел Рабочие процессы): сколько их, какую память занимают, сколько соединений обслуживают. Это помогает понять, какая база держит нагрузку перед остановкой.
  • 🔧 Вывести из работы один рабочий сервер кластера из нескольких. Через требования назначения функциональности в свойствах рабочего сервера нагрузку переносят на другие серверы, а освободившуюся машину останавливают штатно.
  • 🔧 Заблокировать базу — как описано в разделе подготовки.

Для полного отключения одной базы при работающем сервере достаточно блокировки начала сеансов и регламентных заданий: база не принимает подключений, остальные базы кластера работают.

Отключение сервера 1С из командной строки и в скриптах

Командная строка нужна для плановых работ: ночное резервное копирование , обновление платформы , перезагрузка по расписанию.

Узнайте точное имя службы

Отображаемое имя в оснастке и внутреннее имя службы отличаются. Внутреннее нужно для команд:

sc query state= all | findstr /i "1C"

В PowerShell то же самое короче:

Get-Service *1C* | Format-Table Name, DisplayName, Status

Обычно внутреннее имя выглядит как 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)"

PowerShell:

Stop-Service -Name "1C:Enterprise 8.3 Server Agent (x86-64)"
Set-Service  -Name "1C:Enterprise 8.3 Server Agent (x86-64)" -StartupType Disabled

Вторая строка отключает автозапуск. Вернуть: -StartupType Automatic.

Блокировка баз и завершение сеансов через rac

Утилита rac лежит в каталоге bin платформы и работает через службу ras. Если ras не запущен, поднимите его на время работ:

"C:\Program Files\1cv8\8.3.24.1548\bin\ras.exe" cluster --port=1545 localhost:1540

Дальше команды выполняются в другом окне:

rac cluster list
rac infobase summary list --cluster=<id_кластера>
rac session list --cluster=<id_кластера>
rac session terminate --cluster=<id_кластера> --session=<id_сеанса>

Идентификаторы кластера, баз и сеансов берутся из вывода предыдущих команд. Если у кластера есть администратор, добавляйте --cluster-user и --cluster-pwd.

Блокировка базы делается командой rac infobase update с параметрами блокировки сеансов и регламентных заданий; для неё нужны также логин и пароль пользователя базы. Точный список параметров вашей версии посмотрите в rac help infobase — он менялся между релизами платформы.

Типовой ночной сценарий: заблокировать базы через rac → подождать 10–15 минут → завершить оставшиеся сеансы → net stop → копирование или обновление → net start → снять блокировку. Каждый шаг логируйте в файл, чтобы утром видеть, где сценарий остановился.

Сервер 1С на Linux

На Linux сервер работает как служба systemd. Имя юнита зависит от версии платформы и способа установки, поэтому сначала найдите его:

systemctl list-units --all | grep -i 1c

Затем остановка и отключение автозапуска:

sudo systemctl stop <имя_юнита>
sudo systemctl disable <имя_юнита>

Проверка, что процессов не осталось: ps aux | grep -E "ragent|rmngr|rphost".

Аварийное завершение процессов сервера 1С

Иногда служба висит в состоянии «Остановка» минутами, или после остановки в Диспетчере задач остаются rphost.exe. Тогда процессы завершают принудительно.

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

Порядок действий

  1. Узнайте PID процесса службы:
    sc queryex "1C:Enterprise 8.3 Server Agent (x86-64)"
    
    Номер — в строке PID.
  2. Завершите агент по PID:
    taskkill /F /PID <номер>
    
  3. Добейте оставшиеся процессы кластера:
    taskkill /F /IM rphost.exe
    taskkill /F /IM rmngr.exe
    
  4. Проверьте в Диспетчере задач, что процессов не осталось.

Если на машине работают кластеры двух версий платформы, taskkill /IM убьёт процессы обоих. В этом случае завершайте по PID, сверяя путь к exe в колонке «Командная строка» Диспетчера задач.

Очистка кэша кластера

После аварийной остановки сервер иногда не поднимается или работает со странностями: бесконечные блокировки, «пропавшие» сеансы. Помогает очистка сеансовых данных кластера. Делается только на остановленной службе:

  1. Откройте каталог кластера: по умолчанию C:\Program Files\1cv8\srvinfo\reg_1541\ (если служба работает от отдельной учётной записи, путь srvinfo может лежать в её профиле — смотрите параметр -d в свойствах службы).
  2. Скопируйте папку reg_1541 целиком в резервное место.
  3. Удалите внутри папки с именами, начинающимися на snccntx.
  4. Запустите службу.

Не трогайте файлы 1CV8Clst.lst и 1CV8Reg.lst, а также папки с именами-идентификаторами баз. В .lst хранится реестр кластера: список баз, администраторов, настроек. Без него кластер придётся собирать заново.

Диагностика: почему сервер 1С не останавливается

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

Что ещё проверить, если поведение странное

  • 📋 Журнал событий Windows. Просмотр событий → Журналы Windows → Система — записи диспетчера управления службами о том, когда и как остановилась служба.
  • 📋 Технологический журнал 1С. Если он включён (файл logcfg.xml), в логах видно, какой процесс держал остановку.
  • 📋 Антивирус. Он иногда блокирует удаление временных файлов rphost и тормозит остановку. Каталог srvinfo стоит добавить в исключения.

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

Нужно ли останавливать сервер 1С, чтобы обновить конфигурацию?
Нет. Для обновления конфигурации нужен монопольный доступ к базе, а не остановка сервера. Достаточно заблокировать начало сеансов и завершить сеансы этой базы.
Нужно ли останавливать сервер 1С при обновлении платформы?
Да. Устанавливать новую версию сервера нужно при остановленной службе, иначе установщик не сможет заменить файлы.
Остановится ли SQL Server или PostgreSQL вместе с сервером 1С?
Нет, это отдельные службы. Сервер СУБД продолжит работать, данные баз в нём не пострадают от остановки службы 1С.
Сколько обычно занимает остановка сервера 1С?
При пустом списке сеансов — несколько секунд. Если работают фоновые задания, агент ждёт их завершения, и остановка может растянуться на минуты.
Освобождаются ли лицензии при остановке сервера?
Да. Клиентские лицензии выдаются на сеанс, и после завершения всех сеансов они снова свободны. Лицензия самого сервера привязана к компьютеру и остаётся на нём.