Остановка службы ragent: Windows, Linux, автозапуск и проверка портов
Содержание
Чтобы отключить агент сервера 1С, остановите его службу и поменяйте тип запуска на «Отключена». В Windows это делается в services.msc или командой PowerShell Stop-Service + Set-Service -StartupType Disabled, в Linux — через systemctl stop и systemctl disable для юнита srv1cv8… (или старого srv1cv83). Вместе с агентом ragent останавливаются менеджер кластера rmngr и рабочие процессы rphost.
Типичная ситуация: на сервер поставили новую версию платформы, а старый агент всё ещё держит порт 1540 и не даёт стартовать новому. Или базы переехали на другой сервер, и старую машину надо вывести из работы так, чтобы служба не поднялась сама после перезагрузки. В обоих случаях мало просто «остановить» службу — нужно ещё снять автозапуск и убедиться, что порты освободились.
Что делает агент сервера и когда его отключают
Агент сервера (процесс ragent) — точка входа в кластер 1С. Клиент сначала обращается к нему по порту 1540, затем к менеджеру кластера (rmngr, порт 1541) и уже потом к рабочим процессам rphost. Диапазон портов рабочих процессов (по умолчанию 1560–1591) задаётся в свойствах рабочего сервера.
Консоль «Администрирование серверов 1С Предприятия» тоже подключается через агент. Поэтому после остановки агента:
- 🔌 пользователи не смогут открыть ни одну клиент-серверную базу этого сервера;
- 🖥️ консоль кластера покажет ошибку подключения;
- 🌐 веб-публикации на IIS или Apache, которые смотрят на этот кластер, начнут отдавать ошибку;
- ⏰ фоновые и регламентные задания перестанут выполняться.
Файловые базы агент не обслуживает — их остановка службы не затронет.
Когда агент отключают:
| Задача | Что нужно сделать |
|---|---|
| Обслуживание СУБД, перенос каталогов кластера | Временно остановить, автозапуск не трогать |
| Установлена новая версия платформы, старая мешает | Остановить и отключить службу старой версии |
| Сервер выводится из эксплуатации | Остановить, отключить, затем удалить службу или платформу |
| Тест: «виноват ли сервер 1С» | Временно остановить |
| Нужен сервер только для файловых баз | Отключить службу совсем |
Подготовка: сеансы, задания, зависимости
Остановка агента обрывает все сеансы пользователей на этом сервере без сохранения несохранённых данных. Делайте её в нерабочее время или после предупреждения.
Что проверить перед остановкой:
- Активные сеансы. Откройте консоль кластера → кластер →
Информационные базы→ нужная база →Сеансы. Там видно, кто работает. Через командную строку то же самое показывает утилитаrac(нужна запущенная службаras):rac session list --cluster=<id>. Идентификатор кластера даётrac cluster list. - Блокировка входа. В свойствах информационной базы в консоли включите блокировку начала сеансов, задайте время и сообщение для пользователей. Новые пользователи не зайдут, а работающие увидят предупреждение.
- Фоновые задания и обмены. Если по расписанию идёт выгрузка в банк, обмен с сайтом или закрытие месяца — дождитесь завершения. Прерванный обмен потом придётся перезапускать вручную.
- Кто ещё зависит от сервера. Веб-серверы с публикациями, другие серверы того же кластера, интеграции через HTTP-сервисы, сервер лицензирования, если он на этой машине.
- Сколько версий платформы установлено. На одном сервере бывает две-три службы агента разных версий. Отключать надо именно ту, что нужно, — проверьте путь к исполняемому файлу в свойствах службы.
Как отключить агент сервера 1С в Windows через «Службы»
Самый наглядный способ, подходит для разового отключения.
- Нажмите
Win + R, введитеservices.msc, нажмите Enter. - Найдите службу агента. В русской установке она обычно называется «Агент сервера 1С:Предприятия 8.3 (x86-64)», внутреннее имя — вида
1C:Enterprise 8.3 Server Agent (x86-64). Если версий несколько, к имени добавляется номер или суффикс. - Откройте свойства двойным щелчком. На вкладке «Общие» сверьте строку «Исполняемый файл»: там путь вида
C:\Program Files\1cv8\8.3.xx.xxxx\bin\ragent.exe— по нему видно версию. - Нажмите «Остановить» и дождитесь состояния «Остановлена».
- В поле «Тип запуска» выберите «Отключена» → «Применить» → «ОК».
Если нужно лишь временно остановить агент на время работ — пункт 5 пропустите, тогда после перезагрузки служба поднимется сама.
Тип запуска «Вручную» — компромисс: служба не стартует при загрузке Windows, но её можно запустить кнопкой без смены настроек. Удобно для резервного сервера.
Отключение через PowerShell и командную строку
Командами удобнее работать на нескольких серверах сразу или из скрипта обслуживания. PowerShell запускайте от имени администратора — иначе получите отказ в доступе.
Найти точное имя службы
Get-Service | Where-Object { $_.Name -like "*1C*" -or $_.DisplayName -like "*1С*" } |
Select-Object Name, DisplayName, Status, StartType
В фильтре стоят и латинская «1C», и кириллическая «1С»: в отображаемом имени может быть любая из них.
Путь к исполняемому файлу каждой службы покажет CIM-запрос:
Get-CimInstance Win32_Service | Where-Object { $_.PathName -like "*ragent*" } |
Select-Object Name, State, StartMode, PathName
Остановить и снять автозапуск
$svc = "1C:Enterprise 8.3 Server Agent (x86-64)"
Stop-Service -Name $svc
Set-Service -Name $svc -StartupType Disabled
Подставьте имя из первой команды. Кавычки обязательны — в имени есть пробелы и двоеточие.
То же через sc.exe
В обычной командной строке (cmd от администратора):
sc query state= all | findstr /i "1C"
sc stop "1C:Enterprise 8.3 Server Agent (x86-64)"
sc config "1C:Enterprise 8.3 Server Agent (x86-64)" start= disabled
После start= обязателен пробел — без него sc выдаст ошибку синтаксиса. Для удалённого сервера добавьте его имя: sc \\SRV1C stop "<имя службы>".
Сравнение способов в Windows
| Способ | Когда удобен | На что смотреть |
|---|---|---|
services.msc | Разовая остановка на одном сервере | Путь к ragent.exe в свойствах |
| PowerShell | Скрипты, несколько служб, проверка состояния | Запуск от администратора |
sc.exe | Старые скрипты, удалённые серверы | Пробел после start= |
taskkill | Служба зависла в «Остановке» | Только как крайняя мера |
Если на сервере работает служба администрирования ras (её регистрируют отдельно, обычно под именем со словами Remote Server), после остановки агента она останется запущенной, но управлять будет нечем. При полном выводе сервера из работы отключите и её.
Как отключить агент сервера 1С на Linux
Порядок зависит от того, как платформа зарегистрирована в системе.
Новые версии: юнит systemd
В современных версиях 8.3 вместе с платформой поставляется шаблон юнита systemd вида srv1cv8-8.3.xx.xxxx@.service, а экземпляр сервера обычно называется default. Найдите, что запущено:
systemctl list-units --all | grep -i -E "srv1cv8|1c"
Остановите и отключите конкретный экземпляр (подставьте свою версию):
sudo systemctl stop srv1cv8-8.3.xx.xxxx@default.service
sudo systemctl disable srv1cv8-8.3.xx.xxxx@default.service
systemctl status srv1cv8-8.3.xx.xxxx@default.service
Если требуется гарантия, что службу не запустит ни администратор по ошибке, ни зависимость, используйте sudo systemctl mask <имя юнита>. Снять запрет — systemctl unmask.
Старые версии: скрипт srv1cv83
На серверах, где платформу ставили давно, агентом управляет init-скрипт srv1cv83:
sudo /etc/init.d/srv1cv83 stop
sudo systemctl disable srv1cv83 # если systemd подхватил скрипт
sudo update-rc.d srv1cv83 disable # Debian/Ubuntu без systemd
sudo chkconfig srv1cv83 off # RHEL-подобные старые системы
Нужна одна из трёх последних команд — по вашему дистрибутиву. Настройки этого скрипта (порты, каталог кластера, ключ отладки) лежат в /etc/sysconfig/srv1cv83; их менять для отключения не требуется.
Принудительное завершение процессов
Иногда служба остановлена, а процессы остались. Посмотрите:
ps aux | grep -E "ragent|rmngr|rphost" | grep -v grep
Сначала попросите процессы завершиться штатно, и только если не помогло — убейте их:
sudo pkill -TERM -f ragent
sudo pkill -TERM -f rmngr
sudo pkill -TERM -f rphost
# через 30–60 секунд, если процессы ещё живы:
sudo pkill -KILL -f rphost
В Windows аналог — taskkill /IM rphost.exe /F, затем rmngr.exe и ragent.exe. Принудительное завершение рабочих процессов обрывает транзакции в базе: делайте это только когда пользователей уже нет.
Особенности в виртуальных машинах, облаке и кластерах
- 🧩 Несколько рабочих серверов в кластере. Агент на центральном сервере останавливает работу всего кластера. Агент на дополнительном рабочем сервере выключает только его, но перед этим уберите с сервера назначение функциональности или установите ему нулевые требования — иначе менеджер кластера какое-то время будет пытаться направлять туда сеансы.
- 💾 Виртуальная машина. Перед серьёзными работами (переустановка платформы, перенос каталога кластера) сделайте снимок ВМ при остановленной службе — так снимок получится согласованным.
- ☁️ Арендованный сервер 1С в облаке. У провайдера часто нет доступа к службам: управление сервером — через его панель или заявкой в поддержку. Не пытайтесь «убить» процессы из-под пользовательской учётной записи.
- 🐳 Контейнеры. Если сервер 1С запущен в Docker, агент — основной процесс контейнера. Останавливайте контейнер (
docker stop <имя>), а не процесс внутри, иначе оркестратор перезапустит его. - 🔑 Программные лицензии. Остановка службы лицензии не затрагивает. Но если параллельно меняете оборудование ВМ (сетевая карта, процессоры, диск), программная лицензия сервера может «слететь» — потребуется её восстановление.
Как убедиться, что агент действительно отключён
Остановленная служба — ещё не гарантия. Проверьте три вещи.
1. Состояние и тип запуска службы.
Get-Service -Name "1C:Enterprise 8.3 Server Agent (x86-64)" | Select-Object Status, StartType
Ожидаемо: Stopped и Disabled. В Linux — systemctl is-enabled <юнит> выдаёт disabled или masked, systemctl is-active — inactive.
2. Не осталось процессов. В Windows: Get-Process ragent, rmngr, rphost -ErrorAction SilentlyContinue — пустой вывод означает, что всё завершилось. В Linux — команда ps из раздела выше.
3. Порты свободны.
Get-NetTCPConnection -LocalPort 1540,1541 -ErrorAction SilentlyContinue
ss -tlnp | grep -E ":154[01]"
Пустой вывод — порты никто не слушает. Если на 1540 висит процесс, это вторая служба агента другой версии: найдите её по PID в выводе.
Финальная проверка — перезагрузить сервер в окно обслуживания и повторить три пункта. Так вы увидите, что служба не поднимается сама.
Ошибки при остановке агента и что с ними делать
Если старая версия платформы больше не нужна, после отключения службы её можно удалить через «Программы и компоненты». Служба удалится вместе с платформой. Каталог кластера srvinfo при этом не стирается — сохраните или удалите его сами, понимая, что там хранится реестр кластера и список баз.