Перезагрузка службы агента 1С:Предприятия 8.3 в Windows и Linux без потери данных

· 9 мин

Содержание

Перезапустить сервер 1С — значит перезапустить одну службу: «Агент сервера 1С:Предприятия 8.3». В Windows это делают в services.msc или командой net stop / net start, в Linux — через systemctl restart. Перезагружать весь компьютер для этого не нужно, а консоль администрирования кластера саму службу не останавливает.

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

Что сделать до перезагрузки сервера 1С

Служба агента (ragent.exe) запускает менеджер кластера (rmngr.exe) и рабочие процессы (rphost.exe). Остановка агента гасит их все. Для пользователей это выглядит как обрыв связи с базой.

При перезапуске сервера 1С обрываются все сеансы во всех базах кластера. Делайте это вне рабочего времени или предупредите пользователей заранее.

Порядок подготовки:

  1. Откройте консоль Администрирование серверов 1С Предприятия и посмотрите, сколько сеансов в каждой базе (ветка Сеансы у информационной базы).
  2. Разошлите предупреждение: «через 10 минут сервер 1С будет перезапущен, сохраните документы».
  3. Если в базе идёт обновление конфигурации , закрытие месяца или долгий регламентный обмен — дождитесь окончания. Обрыв обновления структуры базы потом лечится дольше, чем ожидание.
  4. В свойствах базы включите Блокировка начала сеансов включена — новые пользователи не зайдут, пока вы работаете. Там же можно задать сообщение и время блокировки.
  5. Убедитесь, что есть свежая резервная копия SQL-базы, если рестарт делается из-за сбоя, а не планово.

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

Перед перезапуском службы
Выполнено: 0 / 5

Перезапуск через консоль администрирования кластера

Оснастка Администрирование серверов 1С Предприятия (MMC) нужна для мягкой части работы: закрыть сеансы , найти зависший процесс, проверить, что кластер поднялся. Остановить саму службу из неё нельзя — для этого идите в службы Windows или командную строку.

Если консоль не открывается и пишет, что оснастка не зарегистрирована, зарегистрируйте radmin.dll той версии платформы, что стоит на сервере:

regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"

Номер версии подставьте свой — это имя папки в C:\Program Files\1cv8\. Командную строку запускайте от имени администратора.

Как закрыть сеансы перед рестартом

  1. Разверните Центральные серверы 1С:Предприятия → имя сервера → Кластеры → Локальный кластер → Информационные базы.
  2. Выберите базу, откройте ветку Сеансы.
  3. Выделите сеансы (Ctrl+A) и удалите их через контекстное меню.

Повторите для каждой базы. Сеансы фоновых заданий тоже видны в списке — их удаление прерывает регламентное задание.

Когда хватит перезапуска одного рабочего процесса

Если «тормозит» одна база, а остальные работают, весь сервер трогать не обязательно. В ветке Рабочие процессы видно, какой rphost занимает много памяти. Кластер умеет сам перезапускать такие процессы — это настраивается в свойствах кластера:

Параметр кластераЧто делает
Интервал перезапускаПлановый перезапуск рабочих процессов раз в N секунд
Допустимый объём памятиПорог, после которого процесс считается проблемным
Интервал превышения допустимого объёма памятиСколько секунд процесс может быть выше порога
Принудительно завершать проблемные процессыРазрешает кластеру завершить такой процесс

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

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

Самый наглядный способ — для тех, кто зашёл на сервер по RDP.

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

Если на сервере стоят две версии платформы, служб тоже может быть две, на разных портах. Откройте свойства службы и посмотрите строку «Исполняемый файл»: там видны путь к нужной версии и параметры -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 — у разных версий платформы набор немного отличается.

Перезапуск с очисткой кэша сервера

Иногда простой рестарт не помогает: после него снова ошибки при входе, «плавающие» сбои в одной базе, странные блокировки. Тогда вместе с перезапуском чистят сеансовые данные кластера.

  1. Остановите службу агента.
  2. Откройте каталог кластера: в Windows C:\Program Files\1cv8\srvinfo\reg_1541\, в Linux /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/.
  3. Перенесите в отдельную папку каталоги snccntx* (их может быть несколько).
  4. Запустите службу.

Не трогайте файлы 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С. После рестарта отчёт будет таким же медленным.
  • 🔑 Ошибка лицензии у одного пользователя. Сначала посмотрите в консоли, сколько сеансов занято и нет ли «висящих» сеансов того же пользователя. Удалите лишние — лицензия освободится.
  • 💾 Мало места на диске. Перезапуск не поможет, а служба может не стартовать вовсе. Сначала освободите место: журналы регистрации и технологический журнал часто занимают десятки гигабайт.
  • 🧩 Ошибка в одной конфигурации после обновления. Это вопрос к самой конфигурации, сервер здесь ни при чём.

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

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

Нужно ли перезагружать весь Windows Server, чтобы перезапустить 1С?
Нет. Достаточно перезапустить службу агента сервера 1С. Перезагрузка машины нужна только после обновлений Windows или при проблемах с самой ОС.
Перезапустится ли SQL Server вместе с сервером 1С?
Нет, это разные службы. Данные баз хранятся в СУБД, и рестарт агента 1С их не затрагивает. Если 1С и SQL стоят на одной машине, СУБД трогать не нужно.
Как часто перезапускать сервер 1С профилактически?
Обязательного графика нет. Если процессы со временем раздуваются по памяти, надёжнее настроить интервал перезапуска рабочих процессов в свойствах кластера, чем каждую ночь рестартовать всю службу.
Слетят ли серверные лицензии после перезапуска?
Нет, лицензии привязаны к оборудованию сервера, а не к работе службы. После рестарта пользователи заново получат лицензии при входе.
Можно ли перезапустить сервер 1С без прав администратора Windows?
Остановить службу без прав администратора нельзя. Закрыть сеансы в консоли кластера может администратор кластера 1С, но рестарт службы — задача системного администратора.