Перезапуск сервера 1С:Предприятия на Windows и Linux без потери сеансов
Содержание
Службу сервера 1С перезапускают из оснастки «Службы» Windows, командой net stop / net start или в Linux командой systemctl restart srv1cv83. Перезапуск службы обрывает все сеансы пользователей и фоновые задания, поэтому сначала выгоните людей, а потом уже трогайте сервер.
Часто хватает меньшего: перезапустить рабочий процесс rphost или завершить один зависший сеанс. Ниже — все способы от мягкого к жёсткому, команды для обеих систем и настройка автоматического перезапуска, чтобы не вставать ночью.
Что именно вы перезапускаете: агент, менеджер и рабочие процессы
Сервер 1С — это не один процесс, а цепочка. Знать её нужно, чтобы не перезапускать лишнее.
| Процесс | Роль | Что будет, если завершить |
|---|---|---|
ragent | Агент сервера. Это и есть «служба» в Windows. Запускает остальное | Остановится весь сервер, все сеансы оборвутся |
rmngr | Менеджер кластера. Хранит реестр кластера, раздаёт клиентов процессам | Агент поднимет его заново, сеансы потеряются |
rphost | Рабочий процесс. В нём выполняется код ваших баз | Сеансы, живущие на этом процессе, оборвутся. Остальные работают |
ras | Сервер администрирования. Нужен утилите rac и удалённым консолям | Работа баз не затронута |
Что это значит на практике:
- 🟢 Завис один пользователь — завершайте сеанс, службу не трогайте.
- 🟡 Разбух по памяти один
rphost— перезапустите рабочие процессы через настройки кластера. - 🔴 Не отвечает менеджер кластера, консоль не подключается, службу не остановить — перезапускайте службу целиком.
Порты по умолчанию: агент слушает 1540, менеджер кластера — 1541, рабочие процессы получают диапазон 1560–1591. Если после перезапуска клиенты не подключаются, первым делом проверьте, что эти порты открыты в брандмауэре.
Подготовка: как остановить службу без потерь
Перед перезапуском пройдите короткий список. На это уходит минут десять, зато не придётся объяснять бухгалтерам, куда пропал несохранённый документ.
Запрет подключений ставится в консоли кластера: откройте свойства информационной базы и включите блокировку начала сеансов, при желании с текстом сообщения и кодом разрешения. Тогда новые пользователи не зайдут, а уже работающие успеют закончить.
Перезапуск службы в середине длинной операции (закрытие месяца, массовое проведение, выгрузка обмена) оставит документы наполовину обработанными. Подождите завершения или отмените задание штатно.
Резервную копию делайте до перезапуска, а не после. Если файл базы кластера (1CV8Clst.lst и каталог reg_1541) повредится при аварийной остановке, восстанавливать придётся из неё.
Перезапуск службы 1С в Windows
Через оснастку «Службы»
- Нажмите
Win+R, введитеservices.msc. - Найдите службу «Агент сервера 1С:Предприятия 8.3» (в её названии есть разрядность, например
x86-64). - Правый клик — «Перезапустить». Или «Остановить», пауза, «Запустить».
Если нужной строки нет, значит сервер поставлен без службы или под другим именем. Отсортируйте список по полю «Имя» и поищите по слову 1C.
Из командной строки
Откройте cmd от имени администратора. Сначала узнайте точное имя службы:
sc query state= all | findstr /i "1C"
В выводе SERVICE_NAME — то, что подставляется в команды. Дальше:
net stop "ИМЯ_СЛУЖБЫ"
net start "ИМЯ_СЛУЖБЫ"
Имя с пробелами и двоеточием берите в кавычки. Если net stop висит дольше минуты, не жмите Ctrl+C сразу: служба ждёт, пока корректно закроются рабочие процессы. Перейдите к разделу про аварийную остановку.
Через PowerShell
Get-Service | Where-Object { $_.DisplayName -like "*1C*" -or $_.DisplayName -like "*1С*" }
Restart-Service -Name "ИМЯ_СЛУЖБЫ" -Force
Первая строка нужна, потому что в имени могут встретиться и латинская C, и кириллическая С. Фильтр ловит оба варианта.
Совет: если служба запущена под отдельной учётной записью (обычно так и бывает), после перезапуска проверьте, что она не слетела на «Локальную систему». Права на каталог кластера srvinfo выдаются именно пользователю службы.
Перезапуск сервера 1С в Linux
В Linux служба называется srv1cv83 (для платформы 8.3). Управление — через systemd:
sudo systemctl status srv1cv83
sudo systemctl restart srv1cv83
Остановить и запустить раздельно:
sudo systemctl stop srv1cv83
sudo systemctl start srv1cv83
Если unit-файла нет, ищите скрипт в /etc/init.d/ и запускайте через service srv1cv83 restart. Служба работает под пользователем usr1cv8, а данные кластера лежат в каталоге srvinfo (путь задаётся в файле настроек службы, обычно в /etc/default/ или /etc/sysconfig/).
После старта проверьте, что процессы поднялись:
ps -ef | grep -E "ragent|rmngr|rphost" | grep -v grep
ss -ltnp | grep -E "1540|1541"
Должны быть ragent, rmngr и хотя бы один rphost (рабочие процессы создаются по мере подключения пользователей, поэтому сразу после старта их может не быть). Порт 1540 в списке слушающих обязателен.
Мягкая альтернатива: перезапуск через консоль кластера и утилиту rac
Если службу целиком перезапускать нельзя, начните отсюда.
Консоль администрирования серверов
В Windows это оснастка MMC «Администрирование серверов 1С:Предприятия» (поставляется вместе с сервером). В Linux и при удалённой работе используют утилиту rac с сервером ras.
В консоли разверните кластер и посмотрите три ветки:
- «Сеансы» — кто и с чем работает, сколько памяти занимает, когда была последняя активность;
- «Соединения» — подключения, включая фоновые задания и внешние обработки;
- «Рабочие процессы» — все
rphostс объёмом памяти и числом соединений.
Завершить один сеанс можно прямо в списке сеансов. Это решает ситуацию, когда один человек завис в проведении и держит блокировку.
Перезапуск рабочих процессов по расписанию кластера
В свойствах кластера есть параметры перезапуска рабочих процессов: интервал перезапуска (в секундах), допустимый объём памяти и интервал превышения этого объёма. Типичная схема: перезапуск раз в сутки, например раз в 86400 секунд, плюс предел по памяти. Когда процесс превышает лимит дольше заданного времени, менеджер сам выводит его из работы и запускает новый. Сеансы на нём пересоздаются.
Это самый безопасный способ «лечить» утечки памяти: служба остаётся на месте, остальные пользователи не замечают ничего.
Те же действия через rac
Запустите ras (в Windows его обычно регистрируют отдельной службой, в Linux запускают из командной строки):
ras cluster --port=1545
Затем в другом окне:
rac localhost:1545 cluster list
rac localhost:1545 session list --cluster=<ИДЕНТИФИКАТОР_КЛАСТЕРА>
rac localhost:1545 process list --cluster=<ИДЕНТИФИКАТОР_КЛАСТЕРА>
Идентификатор кластера — это длинный GUID из первой команды. Завершить сеанс:
rac localhost:1545 session terminate --cluster=<ИД_КЛАСТЕРА> --session=<ИД_СЕАНСА>
Если кластер защищён администратором, добавьте ключи --cluster-user и --cluster-pwd.
Не оставляйте ras открытым на внешний интерфейс. Он даёт управление кластером, а встроенной защиты у него почти нет. Закрывайте порт 1545 брандмауэром или слушайте только localhost.
Если служба зависла: аварийная остановка процессов
Признаки: net stop висит, systemctl stop ждёт до таймаута, консоль кластера не подключается, а в диспетчере задач есть ragent.exe и несколько rphost.exe.
rphost, затем ragent.ragent. Найдите его по PID порта и завершите, после этого запускайте службу.journalctl -u srv1cv83. Чаще всего виновны права на каталог srvinfo или занятый порт.rmngr, агент поднимет его сам. Если нет, перезапускайте службу.Windows
Сначала завершите рабочие процессы, потом агент:
taskkill /F /IM rphost.exe
taskkill /F /IM rmngr.exe
taskkill /F /IM ragent.exe
net start "ИМЯ_СЛУЖБЫ"
Если на машине крутится несколько служб 1С (разные версии платформы), /IM убьёт процессы всех сразу. Тогда завершайте по PID, который виден в диспетчере задач или в tasklist:
taskkill /F /PID 4120
Linux
sudo systemctl kill -s SIGKILL srv1cv83
sudo pkill -9 rphost
sudo pkill -9 rmngr
sudo systemctl start srv1cv83
Использовать kill -9 стоит только после того, как обычная остановка не сработала.
Принудительное завершение процессов не даёт серверу сбросить данные на диск. Сеансы потеряются, а файлы кластера в редких случаях повреждаются. После такого перезапуска проверьте, что список баз кластера на месте и пользователи могут зайти.
Если после аварийной остановки кластер не поднимается, переименуйте (не удаляйте) папку reg_1541 в каталоге srvinfo. Служба создаст её заново. Состав кластера и параметры баз при этом подтянутся из файла реестра, но сеансы и серверные блокировки сбросятся.
После перезапуска: что проверить
Служба в статусе «Работает» ещё не значит, что сервер здоров. Пройдите по короткому списку:
- Откройте консоль кластера и убедитесь, что кластер виден, а все нужные информационные базы на месте.
- Снимите блокировку начала сеансов, которую включали перед остановкой. Её забывают чаще всего, и потом пользователи пишут, что «база не пускает».
- Зайдите в одну из баз сами, под обычной учётной записью, и откройте любой справочник. Первый вход после старта идёт дольше обычного: рабочий процесс создаётся заново, кэш прогревается.
- Загляните в журнал регистрации: нет ли ошибок подключения к СУБД и лицензирования.
- Проверьте, что лицензии на месте. Если сервер использует программный ключ или ключ защиты на этой же машине, после перезапуска он должен быть доступен службе. Сообщения о нехватке лицензий в первые минуты чаще означают, что сеансы старого сервера ещё не отпустили места.
Если пользователи жалуются, что клиент долго «думает» при подключении, подождите 5–10 минут и повторите проверку. Рабочие процессы набирают нагрузку постепенно.
Автоматизация: перезапуск по расписанию и контроль
Плановый ночной перезапуск службы нужен не всем. Если у вас регулярно «пухнут» процессы, а настроек кластера недостаточно, сделайте скрипт.
Windows: планировщик заданий
Файл restart_1c.bat:
@echo off
net stop "ИМЯ_СЛУЖБЫ"
timeout /t 30 /nobreak
taskkill /F /IM rphost.exe 2>nul
taskkill /F /IM rmngr.exe 2>nul
taskkill /F /IM ragent.exe 2>nul
net start "ИМЯ_СЛУЖБЫ"
Пауза в 30 секунд нужна, чтобы служба успела остановиться сама, а taskkill срабатывает только на то, что не завершилось. Создайте задание в «Планировщике заданий» с запуском от имени администратора и триггером на ночь выходного дня.
Linux: cron
30 3 * * 0 /bin/systemctl restart srv1cv83
Эта строка в crontab пользователя root перезапустит службу в воскресенье в 03:30.
Что настроить сверху
- 🔔 Уведомление в мессенджер или почту, если служба не поднялась. Проверка может быть простым скриптом, который смотрит, слушается ли порт
1540. - 📈 Мониторинг памяти
rphost. Рост до десятков гигабайт — повод разбираться в коде, а не перезапускать по расписанию. - 🚫 Не ставьте перезапуск в рабочее время и в дни сдачи отчётности.
Если без регулярных перезапусков сервер не живёт, скрытая причина обычно в самой конфигурации: тяжёлые запросы, незакрытые соединения COM, внешние обработки. Перезапуск лечит симптом, но причину не убирает.
Частые вопросы
Сеансы пользователей оборвутся при перезапуске службы?
Можно ли перезапустить службу сервера 1С, не останавливая SQL-сервер?
Как перезапустить только один рабочий процесс rphost?
taskkill /PID (в Linux kill). Менеджер кластера запустит новый, и к нему переподключатся новые сеансы. Работавшие на нём пользователи вылетят.Какое значение вносить в перезапуск рабочих процессов в свойствах кластера?
rphost в пике и добавьте запас примерно 20–30%.Нужно ли перезапускать сервер после обновления платформы?
Что делать, если после перезапуска пропал кластер или список баз?
srvinfo (путь задаётся параметром запуска -d). Если нужно, верните его на прежнее место, и список появится вновь.