Перезагрузка службы агента 1С:Предприятия 8.3 в Windows и Linux без потери данных
Содержание
Перезапустить сервер
1С — значит перезапустить одну службу: «Агент сервера 1С:Предприятия 8.3». В Windows это делают в services.msc или командой net stop / net start, в Linux — через systemctl restart. Перезагружать весь компьютер для этого не нужно, а консоль администрирования кластера саму службу не останавливает.
Частая ошибка — сразу жать «Перезапустить», пока в базах работают люди. Служба остановится, но все сеансы оборвутся, а незаписанные документы пропадут. Поэтому сначала пять минут на подготовку, потом сам рестарт, потом короткая проверка.
Что сделать до перезагрузки сервера 1С
Служба агента (ragent.exe) запускает менеджер кластера (rmngr.exe) и рабочие процессы (rphost.exe). Остановка агента гасит их все. Для пользователей это выглядит как обрыв связи с базой.
При перезапуске сервера 1С обрываются все сеансы во всех базах кластера. Делайте это вне рабочего времени или предупредите пользователей заранее.
Порядок подготовки:
- Откройте консоль
Администрирование серверов 1С Предприятияи посмотрите, сколько сеансов в каждой базе (веткаСеансыу информационной базы). - Разошлите предупреждение: «через 10 минут сервер 1С будет перезапущен, сохраните документы».
- Если в базе идёт обновление конфигурации , закрытие месяца или долгий регламентный обмен — дождитесь окончания. Обрыв обновления структуры базы потом лечится дольше, чем ожидание.
- В свойствах базы включите
Блокировка начала сеансов включена— новые пользователи не зайдут, пока вы работаете. Там же можно задать сообщение и время блокировки. - Убедитесь, что есть свежая резервная копия SQL-базы, если рестарт делается из-за сбоя, а не планово.
Блокировку сеансов после перезапуска нужно снять вручную. Её забывают чаще всего, и утром бухгалтерия звонит с ошибкой «Начало сеанса с информационной базой запрещено».
Перезапуск через консоль администрирования кластера
Оснастка Администрирование серверов 1С Предприятия (MMC) нужна для мягкой части работы: закрыть сеансы
, найти зависший процесс, проверить, что кластер поднялся. Остановить саму службу из неё нельзя — для этого идите в службы Windows или командную строку.
Если консоль не открывается и пишет, что оснастка не зарегистрирована, зарегистрируйте radmin.dll той версии платформы, что стоит на сервере:
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"
Номер версии подставьте свой — это имя папки в C:\Program Files\1cv8\. Командную строку запускайте от имени администратора.
Как закрыть сеансы перед рестартом
- Разверните
Центральные серверы 1С:Предприятия → имя сервера → Кластеры → Локальный кластер → Информационные базы. - Выберите базу, откройте ветку
Сеансы. - Выделите сеансы (Ctrl+A) и удалите их через контекстное меню.
Повторите для каждой базы. Сеансы фоновых заданий тоже видны в списке — их удаление прерывает регламентное задание.
Когда хватит перезапуска одного рабочего процесса
Если «тормозит» одна база, а остальные работают, весь сервер трогать не обязательно. В ветке Рабочие процессы видно, какой rphost занимает много памяти. Кластер умеет сам перезапускать такие процессы — это настраивается в свойствах кластера:
| Параметр кластера | Что делает |
|---|---|
| Интервал перезапуска | Плановый перезапуск рабочих процессов раз в N секунд |
| Допустимый объём памяти | Порог, после которого процесс считается проблемным |
| Интервал превышения допустимого объёма памяти | Сколько секунд процесс может быть выше порога |
| Принудительно завершать проблемные процессы | Разрешает кластеру завершить такой процесс |
При плановом перезапуске кластер сначала поднимает новый процесс, переводит на него новые соединения и только потом гасит старый. Пользователи этого почти не замечают.
Перезапуск службы агента 1С в оснастке «Службы» Windows
Самый наглядный способ — для тех, кто зашёл на сервер по RDP.
- Нажмите Win+R, введите
services.msc. - Найдите службу
Агент сервера 1С:Предприятия 8.3 (x86-64). Для 32-разрядного сервера в названии не будет(x86-64). - Правой кнопкой →
Перезапустить. - Дождитесь статуса «Выполняется».
Если на сервере стоят две версии платформы, служб тоже может быть две, на разных портах. Откройте свойства службы и посмотрите строку «Исполняемый файл»: там видны путь к нужной версии и параметры -port 1540 -regport 1541 -range 1560:1591. Так вы не перезапустите не тот кластер.
На вкладке «Вход в систему» указан пользователь, от которого работает служба (обычно USR1CV8). Если его пароль меняли, служба после рестарта не стартует — об этом ниже.
Команды для перезагрузки сервера 1С: cmd и PowerShell
Командная строка удобна для удалённой работы и для ночного рестарта по расписанию.
Узнать точное имя службы
Отображаемое имя в services.msc и системное имя службы различаются. Командам нужно системное:
sc query state= all | findstr /i "1C"
Get-Service | Where-Object { $_.Name -like "*1C*" } | Format-Table Name, DisplayName, Status
Типовое системное имя — 1C:Enterprise 8.3 Server Agent (x86-64).
Перезапуск из cmd
net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
net start "1C:Enterprise 8.3 Server Agent (x86-64)"
Если net stop висит дольше пары минут или служба застряла в состоянии «Остановка», добейте процессы вручную и запустите службу снова:
taskkill /F /IM rphost.exe
taskkill /F /IM rmngr.exe
taskkill /F /IM ragent.exe
net start "1C:Enterprise 8.3 Server Agent (x86-64)"
taskkill /F завершает процессы без сохранения. Применяйте его, только когда пользователи уже отключены или сервер всё равно не отвечает.
Перезапуск из PowerShell
Restart-Service -Name "1C:Enterprise 8.3 Server Agent (x86-64)" -Force
Get-Service -Name "1C:Enterprise 8.3 Server Agent (x86-64)"
С соседней машины, если включено удалённое управление PowerShell:
Invoke-Command -ComputerName srv1c -ScriptBlock {
Restart-Service -Name "1C:Enterprise 8.3 Server Agent (x86-64)" -Force
}
Ночной перезапуск по расписанию
Сохраните команды net stop / net start в файл restart_1c.bat и создайте задание в Планировщике заданий: запуск от администратора, «Выполнять вне зависимости от регистрации пользователя», время — когда в базах никого нет, например 03:00. Проверьте, что в это время не стоят регламентные задания обмена и резервного копирования SQL.
Сравнение способов
| Способ | Когда удобен | Риски |
|---|---|---|
services.msc | Разовый рестарт по RDP | Легко перепутать службы двух версий |
net stop / net start | Скрипты, расписание | Висит, если процессы не завершаются |
taskkill /F | Служба зависла в «Остановке» | Обрыв без сохранения данных |
Restart-Service | Удалённо, с другой машины | Нужны права и настроенный WinRM |
| Настройки кластера | Утечка памяти в одной базе | Не помогает при сбое самого агента |
Перезапуск сервера 1С в Linux
В Linux служба агента работает от пользователя usr1cv8. Как она называется, зависит от версии платформы.
Платформа 8.3.21 и выше ставит юнит systemd с номером версии в имени:
systemctl list-units --all | grep -i 1cv8
sudo systemctl restart srv1cv8-8.3.24.1548@default
sudo systemctl status srv1cv8-8.3.24.1548@default
Если юнит не найден, его подключают из каталога платформы, затем включают:
sudo systemctl link /opt/1cv8/x86_64/8.3.24.1548/srv1cv8-8.3.24.1548@.service
sudo systemctl enable --now srv1cv8-8.3.24.1548@default
Платформы с номером ниже 8.3.21 чаще всего управляются старым скриптом:
sudo service srv1cv83 restart
# или
sudo /etc/init.d/srv1cv83 restart
Зависшие процессы в Linux ищут и завершают так:
ps aux | grep -E "ragent|rmngr|rphost"
sudo pkill -9 rphost
Сеансы без графической консоли закрывают через rac. Для этого должен работать сервер администрирования ras (порт 1545 по умолчанию):
rac cluster list
rac session list --cluster=<id_кластера>
rac session terminate --cluster=<id_кластера> --session=<id_сеанса>
Остальные параметры смотрите в rac help — у разных версий платформы набор немного отличается.
Перезапуск с очисткой кэша сервера
Иногда простой рестарт не помогает: после него снова ошибки при входе, «плавающие» сбои в одной базе, странные блокировки. Тогда вместе с перезапуском чистят сеансовые данные кластера.
- Остановите службу агента.
- Откройте каталог кластера: в Windows
C:\Program Files\1cv8\srvinfo\reg_1541\, в Linux/home/usr1cv8/.1cv8/1C/1cv8/reg_1541/. - Перенесите в отдельную папку каталоги
snccntx*(их может быть несколько). - Запустите службу.
Не трогайте файлы 1CV8Clst.lst и 1CV8Reg.lst и папки с GUID баз. В них список баз и настройки кластера. Без них придётся заново регистрировать базы и задавать администраторов.
Если путь srvinfo у вас другой, посмотрите параметр -d в строке запуска службы — он указывает на каталог данных кластера.
Диагностика: сервер 1С не поднялся после перезапуска
Сначала проверьте три вещи: служба в статусе «Выполняется», порты слушаются, консоль видит кластер.
netstat -ano | findstr ":1540 :1541"
Если порта нет в выводе, агент не стартовал. Причину ищите в журнале Windows: eventvwr.msc → Журналы Windows → Приложение, источник с «1C» в названии. В Linux — journalctl -u srv1cv8-8.3.24.1548@default -n 50.
Если после рестарта не стартует служба, а на сервере недавно обновляли платформу, проверьте строку «Исполняемый файл» в свойствах службы. Нередко служба по-прежнему указывает на папку удалённой старой версии.
Когда перезапускать сервер 1С не нужно
Рестарт службы лечит зависшие процессы и сбойный кэш сеансов. Многие проблемы он не решает, а только обрывает работу людей.
- 🔒 Одна база «висит» на блокировке. Найдите в консоли сеанс, который держит блокировку, и завершите только его. Остальные базы продолжат работать.
- 🐢 Медленно формируется один отчёт. Это вопрос запроса и индексов СУБД, а не сервера 1С. После рестарта отчёт будет таким же медленным.
- 🔑 Ошибка лицензии у одного пользователя. Сначала посмотрите в консоли, сколько сеансов занято и нет ли «висящих» сеансов того же пользователя. Удалите лишние — лицензия освободится.
- 💾 Мало места на диске. Перезапуск не поможет, а служба может не стартовать вовсе. Сначала освободите место: журналы регистрации и технологический журнал часто занимают десятки гигабайт.
- 🧩 Ошибка в одной конфигурации после обновления. Это вопрос к самой конфигурации, сервер здесь ни при чём.
Правило простое: если проблема у всех баз сразу или консоль кластера не отвечает — перезапускайте службу. Если у одной базы или одного пользователя — разбирайтесь точечно.