Остановка службы ragent: Windows, Linux, автозапуск и проверка портов

· 10 мин

Содержание

Чтобы отключить агент сервера 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С»Временно остановить
Нужен сервер только для файловых базОтключить службу совсем

Подготовка: сеансы, задания, зависимости

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

Что проверить перед остановкой:

  1. Активные сеансы. Откройте консоль кластера → кластер → Информационные базы → нужная база → Сеансы. Там видно, кто работает. Через командную строку то же самое показывает утилита rac (нужна запущенная служба ras): rac session list --cluster=<id>. Идентификатор кластера даёт rac cluster list.
  2. Блокировка входа. В свойствах информационной базы в консоли включите блокировку начала сеансов, задайте время и сообщение для пользователей. Новые пользователи не зайдут, а работающие увидят предупреждение.
  3. Фоновые задания и обмены. Если по расписанию идёт выгрузка в банк, обмен с сайтом или закрытие месяца — дождитесь завершения. Прерванный обмен потом придётся перезапускать вручную.
  4. Кто ещё зависит от сервера. Веб-серверы с публикациями, другие серверы того же кластера, интеграции через HTTP-сервисы, сервер лицензирования, если он на этой машине.
  5. Сколько версий платформы установлено. На одном сервере бывает две-три службы агента разных версий. Отключать надо именно ту, что нужно, — проверьте путь к исполняемому файлу в свойствах службы.
Перед остановкой агента
Выполнено: 0 / 5

Как отключить агент сервера 1С в Windows через «Службы»

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

  1. Нажмите Win + R, введите services.msc, нажмите Enter.
  2. Найдите службу агента. В русской установке она обычно называется «Агент сервера 1С:Предприятия 8.3 (x86-64)», внутреннее имя — вида 1C:Enterprise 8.3 Server Agent (x86-64). Если версий несколько, к имени добавляется номер или суффикс.
  3. Откройте свойства двойным щелчком. На вкладке «Общие» сверьте строку «Исполняемый файл»: там путь вида C:\Program Files\1cv8\8.3.xx.xxxx\bin\ragent.exe — по нему видно версию.
  4. Нажмите «Остановить» и дождитесь состояния «Остановлена».
  5. В поле «Тип запуска» выберите «Отключена» → «Применить» → «ОК».

Если нужно лишь временно остановить агент на время работ — пункт 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 при этом не стирается — сохраните или удалите его сами, понимая, что там хранится реестр кластера и список баз.

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

Пропадут ли базы, если отключить агент сервера 1С?
Нет. Данные хранятся в СУБД (MS SQL, PostgreSQL), агент их не удаляет. Реестр кластера со списком баз остаётся в каталоге srvinfo и снова подхватывается при запуске службы.
Можно ли остановить агент, не останавливая СУБД?
Да, и обычно так и делают. СУБД продолжает работать, просто к ней перестают подключаться рабочие процессы 1С.
Как быстро вернуть агент обратно?
Поставьте тип запуска «Автоматически» и запустите службу: в PowerShell — Set-Service -StartupType Automatic и Start-Service, в Linux — systemctl enable и systemctl start (или unmask, если юнит был замаскирован).
Нужно ли останавливать агент перед установкой новой версии платформы?
Для установки — нет: новая версия ставится в отдельный каталог. Останавливать старую службу нужно перед запуском новой, если обе используют одинаковые порты 1540–1541.
Повлияет ли остановка агента на файловые базы на том же сервере?
Нет. Файловые базы открываются без сервера 1С и продолжают работать, если к их папке есть доступ.