Остановка службы агента сервера 1С без потери данных и зависших процессов
Содержание
Сервер 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. Запретите новые подключения
В свойствах информационной базы (правой кнопкой по базе → Свойства) есть флажки:
Блокировка начала сеансов включена— новые пользователи не смогут войти.Сообщение блокировки— текст, который увидит пользователь при попытке входа. Например: «Плановые работы на сервере до 22:30».Код разрешения— строка, с которой администратор всё же сможет зайти (параметр запуска/UC).НачалоиКонец— время действия блокировки. Удобно выставить заранее, на вечер.Блокировка регламентных заданий включена— сервер перестанет запускать новые фоновые задания.
Для изменения свойств консоль попросит логин и пароль администратора информационной базы, а если у кластера заданы администраторы — ещё и их учётные данные.
Блокировка действует на одну базу. Если в кластере десять баз, а сервер останавливается целиком, пройдите по всем или используйте скрипт с rac из раздела ниже.
Шаг 3. Дождитесь выхода или завершите сеансы
Предупредите пользователей заранее — письмом или в общем чате, с указанием времени. Сама 1С при включённой блокировке с заданным временем начала показывает работающим пользователям предупреждение и завершает их сеансы, но это срабатывает в типовых конфигурациях на БСП и не мгновенно.
Оставшиеся сеансы удаляют вручную: в списке Сеансы выделите строки → правая кнопка → Удалить. Несохранённые данные этих пользователей пропадут.
Остановка сервера 1С через оснастку «Службы» Windows
Самый наглядный способ для разовой остановки.
- Нажмите
Win + R, введитеservices.msc, нажмите Enter. - Найдите службу
Агент сервера 1С:Предприятия 8.3 (x86-64). Для 32-разрядного сервера в названии не будетx86-64. - Правая кнопка →
Остановить. - Дождитесь, пока в колонке «Состояние» пропадёт статус «Выполняется».
- Откройте Диспетчер задач → вкладка
Подробностии проверьте, что в списке нетragent.exe,rmngr.exe,rphost.exe.
Если на сервере стоит несколько версий платформы, служб агента может быть несколько — с разными портами. Свойства службы (двойной щелчок) покажут в поле «Исполняемый файл» полный путь к ragent.exe с номером версии и параметры -port, -regport, -range. По ним понятно, какой кластер вы гасите.
Как отключить автозапуск
Чтобы сервер 1С не стартовал после перезагрузки:
- Двойной щелчок по службе.
Тип запуска→Отключена.Применить→ОК.
Обратно — тип Автоматически и кнопка Запустить.
Не удаляйте службу ради «полного отключения». Регистрация службы хранит учётную запись, от имени которой работает сервер, и параметры портов. Восстанавливать их потом дольше, чем переключить тип запуска.
Управление кластером в консоли администрирования серверов
Консоль кластера не умеет остановить службу целиком — это делает ОС. Зато в ней удобно погасить часть сервера, не трогая остальное.
Если консоль не открывается
Консоль — это оснастка 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. Тогда процессы завершают принудительно.
Принудительное завершение рвёт всё, что выполнялось: незаписанные документы, обмены, проведение. Делайте это только когда штатная остановка не сработала, а пользователей уже нет в базе.
Порядок действий
- Узнайте PID процесса службы:Номер — в строке
sc queryex "1C:Enterprise 8.3 Server Agent (x86-64)"PID. - Завершите агент по PID:
taskkill /F /PID <номер> - Добейте оставшиеся процессы кластера:
taskkill /F /IM rphost.exe taskkill /F /IM rmngr.exe - Проверьте в Диспетчере задач, что процессов не осталось.
Если на машине работают кластеры двух версий платформы, taskkill /IM убьёт процессы обоих. В этом случае завершайте по PID, сверяя путь к exe в колонке «Командная строка» Диспетчера задач.
Очистка кэша кластера
После аварийной остановки сервер иногда не поднимается или работает со странностями: бесконечные блокировки, «пропавшие» сеансы. Помогает очистка сеансовых данных кластера. Делается только на остановленной службе:
- Откройте каталог кластера: по умолчанию
C:\Program Files\1cv8\srvinfo\reg_1541\(если служба работает от отдельной учётной записи, путьsrvinfoможет лежать в её профиле — смотрите параметр-dв свойствах службы). - Скопируйте папку
reg_1541целиком в резервное место. - Удалите внутри папки с именами, начинающимися на
snccntx. - Запустите службу.
Не трогайте файлы 1CV8Clst.lst и 1CV8Reg.lst, а также папки с именами-идентификаторами баз. В .lst хранится реестр кластера: список баз, администраторов, настроек. Без него кластер придётся собирать заново.
Диагностика: почему сервер 1С не останавливается
sc queryex и завершите процесс принудительно.sc query; если статус не меняется — принудительное завершение по PID.taskkill /F /IM rphost.exe, если на машине один кластер, или по PID, если несколько.netstat -ano | findstr 1541, по PID найдите процесс и завершите его.Srvr= указывает на сервер, File= — на файловую базу.Что ещё проверить, если поведение странное
- 📋 Журнал событий Windows.
Просмотр событий → Журналы Windows → Система— записи диспетчера управления службами о том, когда и как остановилась служба. - 📋 Технологический журнал 1С. Если он включён (файл
logcfg.xml), в логах видно, какой процесс держал остановку. - 📋 Антивирус. Он иногда блокирует удаление временных файлов
rphostи тормозит остановку. Каталогsrvinfoстоит добавить в исключения.