Остановка агента сервера 1С:Предприятие в Windows и Linux
Содержание
Агент сервера 1С останавливается как обычная служба: в Windows через services.msc или net stop, в Linux через systemctl stop. Если служба висит в состоянии «Останавливается», процесс ragent завершают принудительно: taskkill /F /IM ragent.exe или kill -9. Но сначала нужно убедиться, что в базах никто не работает
.
Типичная ситуация: в пятницу вечером надо обновить платформу, а установщик ругается, что файлы заняты. Или после обновления сервер «подвис», сеансы не закрываются, а служба остановиться не хочет. Ниже порядок действий от безопасного к жёсткому.
Что делает агент и почему его нельзя гасить сразу
Агент сервера (процесс ragent) запускает всё остальное. Под ним живёт менеджер кластера rmngr, а под менеджером рабочие процессы rphost, в которых и выполняется код 1С. Остановили агент, значит, остановили кластер целиком.
Что пропадёт в этот момент:
- 🔌 все подключения пользователей к серверным базам;
- ⏳ фоновые и регламентные задания, которые не успели завершиться;
- 📄 несохранённые данные в открытых документах и формах;
- 🧩 внешние обработки и обмены, которые идут через сервер.
Файловые базы агент не затрагивает. Если у вас только файловый вариант, останавливать нечего.
Останавливайте агент только когда сеансов нет или все предупреждены. Прерванная посреди проведения запись может оставить документ непроведённым, а долгая операция закрытия месяца уйдёт в откат.
Подготовка: предупредить людей и снять нагрузку
Перед остановкой у вас должна быть картина, кто и что делает на сервере. Это занимает пять минут и спасает от неприятных звонков.
Посмотреть активные сеансы
Откройте консоль администрирования серверов 1С, раскройте нужный кластер, затем «Информационные базы» и ветку «Сеансы» нужной базы. В списке видно пользователя, приложение (1С:Предприятие, фоновое задание, COM-соединение) и время последней активности.
Фоновые задания и сеансы с пометкой «Сервер» — не люди. Ими обычно занимаются обмены и регламентные процедуры, дождитесь их завершения.
Запретить новые подключения
В свойствах информационной базы в консоли включите блокировку начала сеансов и задайте текст сообщения. Новые пользователи не зайдут, а старые успеют закончить работу. Сообщение и код разрешения лучше написать сразу: «Сервер будет остановлен в 22:00, сохраните работу».
💡 Блокировка снимается той же галочкой. Не забудьте её снять после запуска, иначе утром никто не войдёт, и вы будете искать причину.
Штатная остановка через консоль управления кластером
Важный нюанс, на котором спотыкаются: консоль администрирования серверов умеет закрывать сеансы, удалять рабочие серверы и блокировать базы, но самого агента остановить не может. Для этого нужны средства операционной системы.
Из консоли делается подготовительная часть:
- Выделите нужную базу, откройте «Сеансы».
- Выберите сеанс, нажмите «Удалить» (красный крестик). Сеанс завершится, пользователь получит сообщение об отключении.
- Повторите для всех сеансов или выделите их пачкой.
- Проверьте раздел «Соединения»: там висят соединения служебных процессов, их тоже можно разорвать.
После этого переходите к остановке самой службы.
Как выключить агент сервера 1С в Windows
В Windows агент работает как служба. Название зависит от версии платформы и разрядности. Обычно это что-то вроде «Агент сервера 1С:Предприятия 8.3 (x86-64)». Точное имя смотрите в списке служб.
Через оснастку «Службы»
- Нажмите
Win+R, введитеservices.msc. - Найдите службу, в названии которой есть «1С:Предприятия» и «Агент сервера».
- Правый клик, пункт «Остановить». Подождите до минуты.
- Статус должен смениться на пустой (в старых версиях Windows «Остановлена»).
Через командную строку
Откройте её от имени администратора. Сначала узнайте точное имя службы:
sc query state= all | findstr /i "1C"
Команда выдаст строки SERVICE_NAME и DISPLAY_NAME. Остановить можно по имени:
net stop "имя_службы"
Если в имени есть пробелы и скобки, кавычки обязательны. Запуск обратно — net start "имя_службы".
Через PowerShell
Get-Service | Where-Object { $_.DisplayName -like "*1С*" -or $_.DisplayName -like "*1C*" }
Stop-Service -Name "имя_службы" -Force
Параметр -Force остановит и зависимые службы. У агента сервера они обычно не настроены, но на кастомных установках бывает привязан сервер администрирования ras.
Если у вас запущен сервер администрирования (служба RAS), он зависит от агента. Остановите его первым, тогда агент не будет ждать закрытия соединений.
Остановка агента сервера 1С в Linux
В Linux служба поднимается скриптом установщика платформы. В большинстве дистрибутивов она называется srv1cv83, но у вас может быть иначе: имя зависит от способа установки и версии.
Узнать фактическое имя:
systemctl list-units --type=service | grep -i srv1c
ps -ef | grep ragent
Дальше всё стандартно:
sudo systemctl stop srv1cv83
sudo systemctl status srv1cv83
Если systemd в вашей системе нет, служба управляется скриптом /etc/init.d/srv1cv83 stop.
Проверьте, что процессов не осталось:
ps -ef | grep -E "ragent|rmngr|rphost" | grep -v grep
Пустой вывод означает, что всё остановлено. Если строки остались, переходите к принудительному завершению.
Принудительное завершение, если служба зависла
Служба может висеть в статусе «Останавливается» десять минут и дольше. Типичные причины: рабочий процесс застрял в долгой операции, ждёт ответа от СУБД или упёрся в блокировку на диске. Ждать бессмысленно.
Диспетчер задач и taskkill в Windows
Откройте Диспетчер задач, вкладка «Подробности». Найдите процессы:
| Процесс | Что это | Можно ли убивать |
|---|---|---|
ragent.exe | агент сервера | да, если служба не отвечает |
rmngr.exe | менеджер кластера | да, перезапустится вместе с агентом |
rphost.exe | рабочий процесс | да, но прервутся сеансы и операции в нём |
1cv8.exe | клиент, не сервер | не трогайте, это чужие сеансы |
Порядок такой: сначала rphost, затем rmngr, в последнюю очередь ragent. Командой:
taskkill /F /IM rphost.exe
taskkill /F /IM rmngr.exe
taskkill /F /IM ragent.exe
Если на машине несколько кластеров или несколько версий платформы, /IM убьёт все сразу. Тогда выбирайте по идентификатору:
taskkill /F /PID 4128
PID берите из Диспетчера задач (включите столбец «ИД процесса») или из tasklist | findstr ragent.
kill в Linux
sudo pkill -TERM ragent
sleep 10
sudo pkill -KILL ragent
sudo pkill -KILL rmngr
sudo pkill -KILL rphost
Сначала мягкий сигнал, десять секунд на корректное закрытие, потом жёсткий. Так вы не теряете данные там, где процесс ещё способен реагировать.
Не убивайте процессы клиентов СУБД и сам PostgreSQL или SQL Server вместо ragent. Это разные программы, и потеря сервера баз данных поверх зависшего агента превращается в восстановление из копии.
После принудительной остановки лишние данные в каталоге кластера (по умолчанию srvinfo) остаются. Агент при запуске читает реестр кластера и чаще всего поднимается без проблем. Если после запуска кластер пропал из консоли или появилась ошибка о блокировке файла, смотрите раздел о диагностике.
Остановка через rac и что делать с rmngr
Утилита rac (Remote Administration Client) работает через сервер администрирования ras и управляет кластером из командной строки. Она не останавливает агент. Зато закрывает сеансы и блокирует базы без графической консоли, что удобно в скриптах.
Сначала нужно запустить ras, если он ещё не работает:
ras cluster --port=1545 localhost:1540
Дальше:
rac cluster list
rac session list --cluster=<идентификатор_кластера>
rac session terminate --session=<идентификатор_сеанса> --cluster=<идентификатор_кластера>
Идентификаторы выводятся первыми командами в виде длинных GUID. Для кластера с паролем администратора добавьте --cluster-user и --cluster-pwd.
Теперь про rmngr. Это не утилита для ручного запуска, а процесс менеджера кластера, который порождает агент. Командной строки управления у него нет. Если вы видите совет «остановить через rmngr», он по сути сводится к завершению процесса из Диспетчера задач или командой kill. Остановка только rmngr без агента бесполезна: ragent поднимет менеджер заново.
Почему агент зависает и как найти причину
Если зависание повторяется, одной остановкой не отделаешься. Что проверить по порядку.
Журналы и счётчики
- 📁 В каталоге
srvinfoлежат подкаталогиreg_1541и подобные. В них журналы технологического процесса: падения рабочих процессов, дампы, ошибки соединений с СУБД. - 📊 Системный журнал: в Windows это Просмотр событий (раздел «Приложения»), в Linux
journalctl -u srv1cv83. - 🖥 Диспетчер задач или
top: сколько памяти занимаетrphostна момент проблемы.
Частые причины
| Причина | Как проявляется | Что делать |
|---|---|---|
| Утечка памяти в рабочем процессе | rphost растёт до нескольких гигабайт, сервер уходит в своп | Настроить временный перезапуск рабочих процессов в свойствах кластера |
| Зависшая транзакция в СУБД | Сеансы «висят» на одной операции | Найти блокирующий запрос в СУБД и завершить его |
Нехватка места на диске с srvinfo | Служба не запускается или падает | Освободить место, очистить старые журналы |
| Антивирус сканирует каталог кластера | Фризы, долгие остановки | Добавить srvinfo и каталоги платформы в исключения |
| Несовпадение версий платформы | Агент не поднимается после обновления | Проверить, что запущена служба нужной версии |
Для рабочих процессов в свойствах кластера есть параметры «Интервал перезапуска» и «Допустимый объём памяти». Выставьте интервал в районе суток, а предел памяти по возможностям машины. Процесс будет перезапускаться сам, и агенту не придётся гасить его силой.
Автоматический перезапуск и профилактика
Если сервер приходится перезапускать регулярно, не делайте это руками.
Расписание перезапуска
В Windows создайте задание в Планировщике: действие «Запуск программы», в параметрах скрипт .bat:
net stop "имя_службы"
timeout /t 30 /nobreak
net start "имя_службы"
Тридцать секунд паузы дают процессам освободить порты. Время задавайте ночное, вне окна резервного копирования.
В Linux это делается через cron или таймер systemd:
0 4 * * 0 root systemctl restart srv1cv83
Пример перезапускает службу каждое воскресенье в четыре утра.
Автозапуск после сбоя
В Windows откройте свойства службы, вкладку «Восстановление», и задайте перезапуск службы при первом и втором сбое. В systemd добавьте в unit-файл Restart=on-failure.
Простая гигиена
- Не держите агент, СУБД и антивирус на одном диске без запаса места.
- Следите за размером каталога журналов и регулярно чистите его.
- Перед обновлением платформы останавливайте службу штатно, не выдёргивайте питание машины.
- Для сервера с нагрузкой заведите уведомление, если служба упала: проверка статуса раз в минуту и сообщение в мессенджер.
Проверка после запуска
Когда служба снова работает, не расходитесь сразу. Пройдите короткую проверку:
- В консоли администрирования кластер появился и в нём видны ваши информационные базы.
- Блокировка начала сеансов снята, иначе пользователи получат сообщение о запрете входа.
- Откройте одну из баз тонким клиентом и проведите любой тестовый документ.
- Загляните в журнал регистрации: нет ли ошибок соединения с СУБД в первые минуты.
- Через 10–15 минут посмотрите, сколько памяти заняли
rphost: резкий рост сразу после старта указывает на проблемную базу или регламентное задание.
Частые вопросы
Можно ли остановить агент сервера, пока пользователи работают?
Что случится с файловыми базами при остановке агента?
Как понять, что агент остановлен полностью?
ragent, rmngr и rphost, а порты 1540 и 1541 свободны. Достаточно проверить netstat или ss.Нужно ли останавливать агент перед обновлением платформы?
Служба запускается, но кластер в консоли пустой. Это из-за принудительной остановки?
srvinfo. Проверьте параметры запуска службы.