Перезапуск агента и кластера 1С без потери данных и сеансов
Содержание
Сервер 1С перезапускают через службу агента: в Windows это служба 1C:Enterprise 8.3 Server Agent, её перезапускают в оснастке services.msc или командами net stop / net start. В Linux — через systemctl restart с именем юнита сервера 1С. Вместе с агентом (ragent) перезапускаются менеджер кластера (rmngr) и все рабочие процессы (rphost).
Типичная ситуация: утром бухгалтерия жалуется, что база «висит», отчёты не формируются, а в диспетчере задач rphost.exe занимает 12 ГБ памяти. Перезапуск сервера 1С решает проблему за пару минут. Но если сделать его вслепую, посреди дня, можно оборвать проведение документов у двадцати пользователей и получить вопросы от руководства. Порядок действий ниже — от проверки до разбора причин.
Перезапуск службы агента обрывает все сеансы всех баз на этом сервере. Несохранённые данные у пользователей пропадут, фоновые и регламентные задания прервутся. Делайте это вне рабочего времени или после предупреждения пользователей.
Проверка сервера 1С перед перезапуском
Сначала убедитесь, что виноват именно сервер, а не сеть, СУБД или один «тяжёлый» пользователь. Иногда достаточно завершить один сеанс, и перезапускать весь кластер не нужно.
Что посмотреть за 3–5 минут
- 🔍 Процессы. В диспетчере задач на вкладке «Подробности» найдите
ragent.exe,rmngr.exeиrphost.exe. Если процессаragent.exeнет — служба упала, её надо просто запустить. - 📈 Память и процессор. Рабочий процесс, который съел всю оперативную память или держит процессор на 100% десятки минут, — частая причина «зависания».
- 💾 Диск. Проверьте свободное место на диске с каталогом
srvinfoи на диске СУБД. При заполненном диске сервер ведёт себя непредсказуемо. - 🗄️ СУБД. Если базы на MS SQL или PostgreSQL, проверьте, что служба СУБД работает. Перезапуск 1С при упавшей СУБД ничего не даст.
- 👥 Сеансы. В консоли кластера посмотрите, кто сейчас работает и какие фоновые задания выполняются.
Как узнать точное имя службы
Имя службы зависит от разрядности и способа установки. Иногда на сервере стоят две версии платформы, и у каждой своя служба. Узнать имя можно командой в PowerShell:
Get-Service *1C* | Format-Table Name, DisplayName, Status -AutoSize
Или в обычной командной строке:
sc query state= all | findstr /i "1C"
Запомните значение Name (или SERVICE_NAME) — оно понадобится для команд и bat-файлов.
Чтобы понять, какая версия платформы обслуживает службу, откройте её свойства в services.msc: в поле «Исполняемый файл» виден путь вида C:\Program Files\1cv8\8.3.xx.xxxx\bin\ragent.exe.
Подготовка пользователей и баз к перезапуску
Если перезапуск плановый, потратьте 10 минут на подготовку. Это убережёт от прерванного закрытия месяца и обмена, оборванного на середине.
- Предупредите пользователей: время перезапуска и сколько он займёт (обычно 2–5 минут).
- Откройте консоль
Администрирование серверов 1С Предприятия, раскройте кластер → «Информационные базы». - В свойствах нужной базы включите «Блокировка начала сеансов включена», задайте время начала и окончания блокировки и сообщение для пользователей.
- Там же при необходимости включите «Блокировка регламентных заданий включена», чтобы во время работ не стартовали обмены и загрузки.
- Посмотрите раздел «Сеансы»: дождитесь, пока пользователи выйдут, или завершите оставшиеся сеансы вручную.
- Проверьте фоновые задания: если идёт обновление, перепроведение или выгрузка, лучше дождаться их окончания.
После перезапуска не забудьте снять блокировку сеансов и регламентных заданий, иначе утром никто не войдёт в базу, а обмены не запустятся.
Перезапуск службы агента сервера 1С в Windows
Это штатный способ. Подходит в 90% случаев, когда сервер просто «устал» или после изменения настроек кластера.
Через оснастку «Службы»
- Нажмите
Win + R, введитеservices.mscи нажмите Enter. - Найдите в списке службу «Агент сервера 1С:Предприятия 8.3» (в английской локали —
1C:Enterprise 8.3 Server Agent). - Щёлкните по ней правой кнопкой и выберите «Перезапустить».
- Дождитесь, пока статус снова станет «Выполняется».
- Откройте диспетчер задач и убедитесь, что появились
ragent.exe,rmngr.exeи хотя бы одинrphost.exe.
Через командную строку
Командная строка удобна, когда вы подключены к серверу по RDP с медленным каналом или пишете скрипт. Запускайте её от имени администратора:
net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
net start "1C:Enterprise 8.3 Server Agent (x86-64)"
В PowerShell — одной командой:
Restart-Service -Name "1C:Enterprise 8.3 Server Agent (x86-64)" -Force
Подставьте точное имя службы, которое вы узнали на первом шаге. Если имя содержит пробелы и скобки, кавычки обязательны.
Если net stop висит дольше 1–2 минут со статусом «Остановка», служба не может корректно завершить рабочие процессы. Переходите к принудительной остановке — она описана ниже.
Управление кластером 1С через ras и rac
Утилита rac — консольный клиент администрирования кластера. Она работает не напрямую с агентом, а через сервер администрирования ras. С их помощью можно посмотреть сеансы
и процессы, завершить отдельный сеанс и не трогать весь сервер.
Запуск сервера администрирования ras
Для разового запуска выполните в каталоге bin нужной версии платформы:
cd "C:\Program Files\1cv8\8.3.xx.xxxx\bin"
ras cluster --port=1545 localhost:1540
Чтобы ras работал постоянно, его регистрируют отдельной службой:
sc create "1C:Enterprise 8.3 Remote Server" binPath= "\"C:\Program Files\1cv8\8.3.xx.xxxx\bin\ras.exe\" cluster --service --port=1545 localhost:1540" start= auto DisplayName= "Сервер администрирования 1С 8.3"
sc start "1C:Enterprise 8.3 Remote Server"
После знака = в параметрах sc пробел обязателен — это особенность синтаксиса утилиты.
Основные команды rac
Сначала получите идентификатор кластера:
rac localhost:1545 cluster list
В выводе найдите строку cluster : <uuid> и подставляйте этот идентификатор в следующие команды:
rac localhost:1545 session list --cluster=<uuid_кластера>
rac localhost:1545 process list --cluster=<uuid_кластера>
rac localhost:1545 session terminate --cluster=<uuid_кластера> --session=<uuid_сеанса>
- 📋
session list— все сеансы: пользователь, база, компьютер, время начала. - ⚙️
process list— рабочие процессы с занятой памятью и числом соединений. - ✂️
session terminate— завершает один сеанс. Пользователь потеряет несохранённые данные, предупредите его.
Если у кластера задан администратор, добавьте параметры --cluster-user и --cluster-pwd. Полный список параметров любой команды выводит rac help или, например, rac session help.
Отдельной команды «перезапустить кластер» в rac нет. Весь сервер перезапускают через службу агента, а rac нужен, чтобы точечно разгрузить кластер без остановки.
Принудительная остановка процессов сервера 1С
Если служба не останавливается штатно, процессы завершают вручную. Это крайняя мера: незавершённые транзакции откатятся, а пользователи потеряют всё несохранённое.
Порядок действий в Windows
- Попробуйте ещё раз
net stopи подождите 2 минуты. - Завершите процессы в правильном порядке — сначала рабочие, потом менеджер, потом агент:
taskkill /F /IM rphost.exe
taskkill /F /IM rmngr.exe
taskkill /F /IM ragent.exe
- Проверьте, что процессов не осталось:
tasklist | findstr /i "rphost rmngr ragent". - Запустите службу:
net start "<имя службы>".
Если на сервере работают две версии платформы, taskkill /IM убьёт процессы обеих. В этом случае завершайте по номеру процесса: taskkill /F /PID <номер>. Номер и путь к исполняемому файлу видны в диспетчере задач на вкладке «Подробности», если включить столбец «Командная строка».
Очистка кэша сервера (srvinfo)
Если после перезапуска ошибки остаются — неверные метаданные, странные сообщения при входе, база «не видит» свежее обновление, — помогает очистка сеансовых данных кластера.
- Остановите службу агента и убедитесь, что процессов 1С нет.
- Сделайте копию всего каталога
srvinfo(по умолчаниюC:\Program Files\1cv8\srvinfo, путь также виден в параметре-dв свойствах службы). - Откройте папку
srvinfo\reg_1541и удалите вложенные папки, имя которых начинается сsnccntx. - Запустите службу.
Удаляйте только папки snccntx*. Файлы 1CV8Clst.lst и 1CV8Reg.lst хранят список баз и настройки кластера — их удаление приведёт к тому, что кластер придётся настраивать заново.
Перезапуск сервера 1С в Linux
В Linux сервер 1С управляется через systemd. Имя юнита зависит от версии платформы и способа установки, поэтому сначала найдите его:
systemctl list-units --type=service --all | grep -i 1c
Затем перезапустите найденный юнит и проверьте статус:
sudo systemctl restart <имя_юнита>
sudo systemctl status <имя_юнита>
Если служба зависла, найдите процессы ps aux | grep -E "ragent|rmngr|rphost", завершите их командой sudo kill -9 <PID> в том же порядке, что и в Windows, и запустите юнит заново.
Автоматический перезапуск сервера 1С при зависаниях
Если сервер приходится перезапускать каждую неделю, автоматизируйте это. Но помните: автоматический перезапуск лечит симптом, а не причину.
Встроенный перезапуск рабочих процессов
В консоли кластера откройте свойства кластера. Там есть параметры, которые позволяют обойтись без полного перезапуска:
| Параметр | Что делает | Пример значения |
|---|---|---|
| Интервал перезапуска | Плавно заменяет рабочий процесс новым через заданное время | 86400 с (сутки) |
| Допустимый объём памяти | Порог памяти для рабочих процессов | По объёму ОЗУ сервера |
| Интервал превышения допустимого объёма памяти | Сколько процесс может превышать порог до перезапуска | 300 с |
| Выключенные процессы останавливать через | Сколько ждать завершения старого процесса | 600 с |
При плавном перезапуске новые соединения уходят в новый процесс, а старый доживает до окончания работы сеансов или до заданного таймаута. Пользователи этого почти не замечают.
Ночной перезапуск по расписанию
Создайте bat-файл, например C:\Scripts\restart_1c.cmd:
@echo off
set SRV="1C:Enterprise 8.3 Server Agent (x86-64)"
echo %date% %time% stop >> C:\Scripts\restart_1c.log
net stop %SRV%
timeout /t 30 /nobreak
taskkill /F /IM rphost.exe
taskkill /F /IM rmngr.exe
taskkill /F /IM ragent.exe
net start %SRV%
echo %date% %time% start >> C:\Scripts\restart_1c.log
В «Планировщике заданий» (taskschd.msc) создайте задачу:
- Триггер — ежедневно, например в 03:00, когда нет обменов и регламентных заданий.
- Действие — запуск
C:\Scripts\restart_1c.cmd. - Включите «Выполнять с наивысшими правами» и «Выполнять для всех пользователей».
Если на этом сервере работают обработки ночного обмена, сдвиньте время перезапуска так, чтобы не попасть в их окно.
Автозапуск, если служба упала
Windows умеет сама поднимать упавшую службу. Настроить это можно на вкладке «Восстановление» в свойствах службы или командой:
sc failure "1C:Enterprise 8.3 Server Agent (x86-64)" reset= 86400 actions= restart/60000/restart/60000/""/0
Служба перезапустится через минуту после первого и второго сбоя. Счётчик сбоев обнуляется раз в сутки.
Анализ логов и причин зависания сервера 1С
Если сервер регулярно падает или виснет, ищите причину. Без неё перезапуски будут учащаться.
Где смотреть
- 🪟 Журнал Windows.
eventvwr.msc→ «Журналы Windows» → «Приложение». Ищите ошибки от источников 1С и сбоиrphost.exe. - 📒 Журнал регистрации базы. Ошибки в нём часто указывают на конкретную операцию или пользователя, после которых начались проблемы.
- 🧾 Технологический журнал. Самый подробный источник. Включается файлом
logcfg.xmlв каталогеconfплатформы, напримерC:\Program Files\1cv8\conf.
Пример минимальной настройки технологического журнала для поиска падений и долгих операций:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<dump create="true" location="D:\1c_dumps" type="3"/>
<log location="D:\1c_techlog" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<event>
<eq property="name" value="TLOCK"/>
</event>
<property name="all"/>
</log>
</config>
Параметр history="24" означает, что журнал хранится 24 часа. Не оставляйте журнал с полным набором событий включённым надолго — он быстро занимает десятки гигабайт.
Частые причины нестабильности
Добавьте каталог srvinfo и каталог технологического журнала в исключения антивируса. Сканирование этих файлов на лету замедляет работу и иногда вызывает ошибки сервера.
Если перезапуск не помог
Сервер перезапустили, а база по-прежнему не открывается или тормозит. Проверьте по шагам:
- Порты. Клиент обращается к агенту на порт 1540, затем к менеджеру кластера на 1541 и к рабочим процессам из диапазона, заданного в свойствах рабочего сервера (по умолчанию 1560–1591). Все они должны быть открыты в брандмауэре.
- Версия. Номер версии клиента должен совпадать с номером версии сервера. Сравните с номером в пути к
ragent.exe. - СУБД. Подключитесь к базе средствами СУБД. Если не выходит — проблема не в 1С.
- Лицензии. Командой
rac localhost:1545 session list --cluster=<uuid_кластера> --licensesпроверьте, хватает ли лицензий. Без свободной лицензии новый сеанс не запустится. - Консоль. Если оснастка администрирования перестала открываться после обновления платформы, перерегистрируйте компонент:
regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"из командной строки администратора.
Если перезапусков стало больше одного в неделю, это сигнал не к автоматизации, а к проверке нагрузки: объёма ОЗУ, числа пользователей и самых тяжёлых операций.
Частые вопросы
Можно ли перезапустить только одну базу, не трогая остальные?
rac, но служба перезапускается целиком.Сколько длится перезапуск сервера 1С?
Нужно ли перезагружать весь Windows Server?
Почему после перезапуска пользователи всё ещё видят ошибку?
/ClearCache.