Перезапуск сервера 1С: служба, процессы rphost и кластер

· 9 мин

Содержание

Перезапустить сервер 1С можно одной командой от администратора: net stop и net start для службы «Агент сервера 1С:Предприятия 8.3» (в Windows) или systemctl restart для службы srv1cv83 (в Linux). Но это блокирует работу всех пользователей, а часто хватает мягкого сброса — перезапуска только рабочих процессов rphost через консоль кластера. Выбор способа зависит от того, что именно сломалось.

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

Что именно перезапускается: ragent, rmngr и rphost

Сервер 1С — это не один процесс, а цепочка. Знать её нужно, чтобы понимать, что ломается при перезапуске.

  • ⚙️ ragent — агент сервера. Это и есть та самая служба Windows. Запускает остальное.
  • 🧭 rmngr — менеджер кластера. Хранит список сеансов, блокировок, назначает рабочие процессы.
  • 🏭 rphost — рабочий процесс. Именно он исполняет серверный код и держит память пользовательских сеансов. Их может быть несколько.

Если остановить службу, гаснут все три уровня. Если сбросить только rphost, агент и менеджер продолжают работать, а пользователей «отпускает» с коротким обрывом.

Порты по умолчанию: агент слушает 1540, менеджер кластера — 1541, рабочие процессы занимают диапазон 1560–1591. Эти числа пригодятся, когда после перезапуска клиенты не подключаются, а в брандмауэре что-то закрыто.

Когда перезапуск действительно нужен

  • 🔄 Установили новую версию платформы или обновили файлы 1С на сервере.
  • 🧠 rphost разросся по памяти, сеансы тормозят, а освободить её иначе не удаётся.
  • 🔒 Зависли сеансы, которые не завершаются из консоли.
  • ⚙️ Изменили параметры службы или учётную запись, под которой она запускается.
  • 🛠 После правки настроек кластера или лицензирования сервер их не подхватил.

Когда перезапускать не стоит

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

Подготовка перед остановкой службы

Три минуты подготовки спасают от потерянных данных.

  1. Предупредите пользователей и назначьте время. Лучше вечером или в обеденный перерыв.
  2. Откройте список сеансов в консоли кластера и посмотрите, нет ли активных фоновых заданий: длительных закрытий месяца, обмена, выгрузок.
  3. Запретите новые подключения к базе на время работ (галочка блокировки начала сеансов в свойствах базы в консоли).
  4. Убедитесь, что архив базы свежий. Сервер не удаляет данные при остановке, но аварийное завершение вместе с отказом диска — вполне возможное сочетание.

Не останавливайте службу, пока идёт проведение большого документа или закрытие месяца. Транзакцию откатит СУБД, но вы потеряете часы работы и можете получить частично выполненный обмен.

Перезапуск через оснастку «Службы» Windows

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

  1. Нажмите Win+R, введите services.msc, подтвердите. Нужны права администратора.
  2. В списке найдите службу «Агент сервера 1С:Предприятия 8.3» (в названии бывает пометка x86-64). Имя зависит от версии платформы и разрядности, а их на сервере может стоять несколько.
  3. Щёлкните службу правой кнопкой и выберите «Перезапустить».
  4. Подождите полминуты и убедитесь, что статус снова «Выполняется».

Если кнопки «Перезапустить» нет или она неактивна, служба остановилась некорректно. Нажмите «Остановить», дождитесь статуса остановки, затем «Запустить».

В свойствах службы на вкладке «Восстановление» можно задать действие при сбое — например, «Перезапуск службы» через минуту. Это страховка на случай аварийного падения ragent, но не замена нормальной диагностики.

Если служба «зависла» при остановке

Статус «Остановка» держится минуты — значит, какой-то из процессов не отпускает файлы. Откройте диспетчер задач, найдите ragent.exe, rmngr.exe, rphost.exe, завершите их вручную и запустите службу заново. Делайте это, только если мягкая остановка не сработала. Принудительное завершение рвёт сеансы без предупреждения.

Командная строка и PowerShell: быстро и в скриптах

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

Get-Service | Where-Object { $_.DisplayName -like "*1С*" -or $_.DisplayName -like "*1C*" }

Команда покажет и отображаемое имя, и внутреннее (колонка Name). Дальше работаем с внутренним именем.

Командная строка

net stop "Имя службы"
net start "Имя службы"

Имя с пробелами берут в кавычки. Альтернатива — sc stop и sc start, но sc не ждёт полной остановки, а net stop ждёт. В скрипте это важно: иначе start выполнится до окончания остановки и вернёт ошибку.

PowerShell

Restart-Service -Name "ИмяСлужбы" -Force
Get-Service -Name "ИмяСлужбы"

Ключ -Force нужен, если от службы зависят другие службы. Для сервера 1С это обычно не требуется.

Если нужно прибить зависшие процессы после неудачной остановки:

Get-Process rphost, rmngr, ragent -ErrorAction SilentlyContinue | Stop-Process -Force

Эта команда завершает все рабочие процессы на машине мгновенно и без предупреждения. Используйте её только как крайнюю меру, когда служба не отзывается.

Перезапуск сервера 1С в Linux

В Linux служба называется по номеру версии платформы. Типовое имя — srv1cv83, но у вас может быть другое: проверьте.

systemctl list-units --type=service | grep -i srv1c
sudo systemctl restart srv1cv83
systemctl status srv1cv83

Логи запуска смотрите так:

journalctl -u srv1cv83 -n 100 --no-pager

Мягкий вариант: сбросить рабочий процесс в консоли кластера

Когда нужно только освободить память или снять зависший сеанс , служба не нужна. Консоль называется «Администрирование серверов 1С:Предприятия». Она ставится вместе с платформой или отдельным компонентом.

Завершить сеансы

  1. Подключитесь к центральному серверу (имя сервера и порт 1540).
  2. Раскройте кластер, откройте «Сеансы» (список можно отфильтровать по информационной базе).
  3. Выделите нужные строки и нажмите «Удалить». Если сеанс не завершается — значит, его держит рабочий процесс, и это следующий шаг.

Остановить рабочий процесс

  1. В дереве кластера найдите «Рабочие серверы», затем «Рабочие процессы».
  2. Посмотрите колонки с потреблением памяти и количеством соединений.
  3. Удалите процесс, который распух или завис. Менеджер кластера сам поднимет новый rphost.

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

Настроить автоматический перезапуск рабочих процессов

В свойствах кластера (правая кнопка по кластеру, «Свойства») есть параметры, которые заставляют rphost обновляться самостоятельно:

ПараметрЧто делаетКогда нужен
Интервал перезапуска, сек.Через заданное время процесс завершается и поднимается зановоПрофилактика утечек памяти, часто выбирают сутки (86400 секунд)
Допустимый объём памяти, байтПорог, по достижении которого процесс считается «переросшим»Когда память растёт в течение дня
Допустимое отклонение, %Допуск, после которого процесс перезапускаетсяСглаживает перезапуск, чтобы не уронить всех сразу
Выключенные процессы остановлены через, сек.Время жизни процесса после того, как его отключили от нагрузкиДаёт пользователям закончить работу

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

Не ставьте слишком короткий интервал. Если рабочие процессы перезапускаются каждые несколько минут, пользователи получают постоянные разрывы, а сервер тратит ресурсы на старт.

Автоматизация: перезапуск по расписанию и очистка

Профилактический перезапуск раз в неделю или раз в сутки ночью — обычная практика. Проще всего сделать это через планировщик заданий Windows.

  1. Откройте «Планировщик заданий», создайте задачу, запуск от имени учётной записи с правами администратора.
  2. Триггер: ежедневно или раз в неделю, например в 03:30, когда сервер свободен.
  3. Действие: запуск powershell.exe с аргументами -NoProfile -Command "Restart-Service -Name 'ИмяСлужбы' -Force".
  4. Включите выполнение, даже если пользователь не вошёл в систему.

Перед остановкой службы в скрипте разумно сначала завершить сеансы командой консоли rac (утилита управления кластером) — чтобы пользователи не остались «висеть». Синтаксис rac зависит от версии, поэтому проверьте его справкой самой утилиты (rac help) и не копируйте чужие примеры вслепую.

Что чистить вместе с перезапуском

На сервере копятся каталоги сеансовых данных. Хранилище служебных файлов кластера (по умолчанию каталог srvinfo) содержит данные о сеансах и самом кластере. Его нельзя чистить вручную при работающей службе и тем более удалять целиком: вместе с ним теряется конфигурация кластера.

Безопасно чистятся временные файлы и устаревшие журналы технологического журнала, если вы его включали. Он умеет быстро разрастаться: проверьте размер каталога журналов и ограничьте срок хранения в настройках.

Мини-кейс: сервер «съел» память

Типичная картина: к обеду rphost занимает 12 ГБ из 16, пользователи жалуются на тормоза, а в диспетчере задач виден один раздувшийся процесс. Служба тут не нужна. Откройте консоль кластера, отметьте процесс с наибольшим объёмом памяти и дождитесь, пока в нём останется мало сеансов. Затем удалите процесс. Менеджер кластера создаст новый, и память вернётся к норме за минуту.

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

Диагностика после перезапуска

Служба показывает «Выполняется» — это ещё не значит, что всё работает. Проверьте по порядку.

  1. Процессы на месте: Get-Process ragent, rmngr (Windows) или ps aux | grep ragent (Linux).
  2. Порты слушаются: netstat -ano | findstr 1540 и findstr 1541.
  3. Консоль кластера подключается к серверу и видит кластер.
  4. Информационные базы в списке, а новые сеансы создаются.
  5. Лицензии: сервер видит ключ защиты или программную лицензию.
Диагностика: выберите симптом

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

Потеряются ли данные при перезапуске службы?
Данные хранятся в СУБД, а не в службе. Но незавершённые транзакции будут отменены, а несохранённые документы пользователей пропадут.
Нужно ли перезапускать сервер, если обновили конфигурацию?
Нет. Обновление конфигурации применяется к базе без перезапуска службы. Он нужен после смены версии платформы или её компонентов.
Чем отличается перезапуск службы от перезапуска всего сервера?
Перезапуск службы затрагивает только процессы 1С. Перезапуск Windows тянет за собой и СУБД, и всё остальное, что на нём стоит. Если СУБД на этом же компьютере, пользователи потеряют доступ к базам дольше.
Можно ли перезапустить службу дистанционно?
Да: Restart-Service -ComputerName в старых версиях PowerShell, Invoke-Command или sc \\сервер stop. Нужны права администратора на удалённой машине и открытый доступ к управлению.
Что делать, если консоль кластера не подключается к серверу?
Проверьте, что служба запущена, порт 1540 открыт и в консоли указан верный адрес сервера. Если служба работает, но порт не слушается, смотрите журнал событий.