К статье
Практический материал

Администрирование · 10 мин

Как перезапустить сервер 1С в Linux

Как перезапустить сервер 1С:Предприятие в Linux: команды systemctl, перезапуск агента кластера, проверка статуса службы, типичные ошибки и безопасный порядок действий.

Перезапуск сервера 1С:Предприятия на Linux требуется при зависании сеансов, утечках памяти рабочих процессов, после изменения настроек кластера или установки обновлений платформы. В большинстве дистрибутивов агент сервера 1С работает как системная служба, управляемая через systemd, поэтому основной инструмент администратора — команда systemctl.

Корректный перезапуск отличается от простого «убить процесс и запустить заново»: при грубом завершении активные сеансы пользователей обрываются без сохранения данных, а незавершённые транзакции могут оставить блокировки в СУБД. Безопасная процедура включает предупреждение пользователей, контролируемую остановку службы и проверку состояния кластера после запуска.

Как узнать имя службы сервера 1С

Имя службы зависит от версии платформы и способа установки. При стандартной установке из пакетов 1С служба называется по шаблону srv1cv8-<версия>, например srv1cv8-8.3.22-1750. Если платформа ставилась вручную или скриптами, имя может отличаться.

Чтобы найти точное имя, выполните поиск по списку юнитов systemd:

bash
systemctl list-units --type=service | grep srv1cv8

Альтернативный способ — найти процесс агента и посмотреть, какой службе он принадлежит: ps aux | grep ragent покажет запущенный процесс, а systemctl status <PID> — имя юнита, который его запустил. Это надёжный метод, когда на сервере установлено несколько версий платформы одновременно.

Обратите внимание: если на одном сервере работают два кластера (например, тестовый и боевой на разных портах), у каждого будет своя служба. Перезапуск не той службы оборвёт сеансы не тех пользователей — проверяйте порт агента в параметрах запуска.

Штатный перезапуск через systemctl

Основная команда перезапуска выглядит так (подставьте своё имя службы):

bash
sudo systemctl restart srv1cv8-8.3.22-1750

Команда restart выполняет остановку службы и немедленный запуск. systemd при этом отправляет процессу сигнал корректного завершения и ждёт в пределах таймаута, указанного в юнит-файле. Если процесс не завершается вовремя, systemd принудительно его завершает.

Порядок безопасного перезапуска
  1. 1
    Предупредите пользователей о плановом перезапуске или дождитесь окна без активных сеансов
  2. 2
    Проверьте активные сеансы через консоль кластера или rac session list
  3. 3
    Выполните sudo systemctl restart <имя службы>
  4. 4
    Проверьте статус: systemctl status <имя службы> — должно быть active (running)
  5. 5
    Убедитесь, что рабочие процессы запустились и кластер отвечает: rac process list
  6. 6
    Проверьте, что пользователи могут подключиться к информационным базам

Раздельный вариант — sudo systemctl stop и затем sudo systemctl start — удобен, когда между остановкой и запуском нужно выполнить дополнительные действия: изменить конфигурацию, очистить каталог служебных данных или проверить освобождение портов.

Проверка статуса и диагностика после перезапуска

После перезапуска обязательно убедитесь, что служба поднялась и работает стабильно. Команда systemctl status srv1cv8-<версия> покажет состояние юнита, время запуска и последние строки журнала. Состояние active (running) означает, что агент запущен.

Для детальной диагностики используйте журнал: journalctl -u srv1cv8-<версия> -n 100 выведет последние записи, а флаг -f позволит наблюдать журнал в реальном времени во время запуска. Типичные ошибки на этом этапе — занятый порт, недоступность каталога кластера или проблемы с правами пользователя, от имени которого работает служба.

Проверьте также, что процессы кластера действительно поднялись: ps aux | grep -E 'ragent|rmngr|rphost'. Сразу после старта рабочих процессов может быть меньше обычного — они создаются по мере поступления соединений, это нормально.

Контрольные точки

Как проверить результат

Статус службы
Норма

active (running), без записей failed в journalctl

Тревожный признак

failed или activating с циклическими перезапусками

Процессы кластера
Норма

ragent и rmngr присутствуют в списке процессов

Тревожный признак

процессов нет, хотя служба активна

Подключение клиентов
Норма

пользователи входят в базы, сеансы появляются в списке

Тревожный признак

ошибка соединения с сервером 1С на клиентах

Порт агента
Норма

порт 1540 (или свой) слушается: ss -tlnp | grep 1540

Тревожный признак

порт не занят или занят другим процессом

Управление кластером через утилиту rac

Помимо перезапуска всей службы, администрировать кластер можно через консольную утилиту rac, которая входит в состав платформы и находится в каталоге /opt/1cv8/x86_64/<версия>/. Она позволяет завершать отдельные сеансы и соединения без полного перезапуска — это щадящий вариант, когда проблема вызвана одним зависшим пользователем.

Типовой порядок работы: получить список кластеров (rac cluster list), затем список сеансов (rac session list --cluster=<ID>) и завершить конкретный сеанс командой rac session terminate. Для этого потребуется аутентификация администратора кластера, если она настроена.

Сравнение вариантов

Полный перезапуск службы

Подходит при сбоях кластера, утечках памяти, после обновления платформы. Обрывает все сеансы всех баз на кластере.

Завершение сеанса через rac

Подходит, когда завис один пользователь или фоновое задание. Остальные сеансы не затрагиваются.

Перезапуск рабочего процесса

Возможен через настройки кластера (ограничение памяти и перезапуск rphost). Сеансы на этом процессе обрываются, кластер продолжает работать.

Автоматический перезапуск и настройки systemd

Для повышения отказоустойчивости службу можно настроить на автоматический перезапуск при аварийном завершении. В юнит-файле (обычно в /etc/systemd/system/ или каталоге .d с переопределениями) добавляются параметры Restart=on-failure и RestartSec=10 — тогда systemd поднимет агент через десять секунд после сбоя.

Изменения вносятся через sudo systemctl edit srv1cv8-<версия>, после чего требуется sudo systemctl daemon-reload. Не редактируйте основной юнит-файл напрямую — при обновлении платформы он может быть перезаписан, а переопределения в каталоге .d сохранятся.

Плановый перезапуск по расписанию (например, ночной для освобождения памяти) делается через cron или systemd-таймер с той же командой restart. Такой подход допустим, но лучше сначала разобраться в причинах роста потребления памяти — регулярный перезапуск маскирует проблему, а не решает её.

Если перезапуск требуется регулярно из-за роста памяти rphost, настройте в свойствах кластера допустимый объём памяти рабочих процессов и интервал перезапуска. Кластер будет перезапускать процессы сам, без обрыва всей службы и без вмешательства администратора.
ПЗ
Практическое замечание

Типичные ошибки и риски при перезапуске

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

Вторая группа ошибок связана с тем, что после перезапуска служба не поднимается: занят порт (предыдущий процесс не завершился), повреждены права на каталог кластера, закончилось место на диске. Всегда проверяйте статус и журнал, а не ограничивайтесь отправкой команды restart.

Типичные ошибки
01
Перезапуск без проверки активных сеансов — потеря несохранённых данных пользователей и срыв фоновых обменов
02
Команда kill -9 на процессе ragent — некорректное завершение, риск повреждения служебных файлов кластера
03
Перезапуск не той службы при нескольких кластерах на сервере — обрыв сеансов незапланированной базы
04
Отсутствие проверки статуса после restart — служба упала при старте, а об этом узнали от пользователей
05
Перезапуск сервера 1С без учёта СУБД — на стороне PostgreSQL или MS SQL остаются зависшие сессии, которые нужно завершать отдельно

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

Как перезапустить сервер 1С, если systemctl говорит, что служба не найдена?

Скорее всего, имя службы отличается от ожидаемого или платформа установлена без регистрации службы. Найдите процесс командой ps aux | grep ragent и определите юнит через systemctl status <PID>. Если службы нет вообще, агент запускался вручную скриптом — перезапускайте тем же скриптом или создайте юнит systemd.

Можно ли перезапустить сервер 1С без обрыва сеансов пользователей?

Полный перезапуск агента всегда обрывает сеансы. Альтернатива — завершать только проблемные сеансы через утилиту rac или настроить в кластере автоматический перезапуск рабочих процессов по лимиту памяти: тогда перезапускаются отдельные rphost, а не весь сервер.

Служба после restart сразу падает — что проверять в первую очередь?

Смотрите journalctl -u <имя службы>: типичные причины — занятый порт 1540/1541 (проверьте ss -tlnp), отсутствие прав у пользователя srv1cv8 на каталог кластера, нехватка свободного места на диске или повреждение файлов реестра кластера.

Нужно ли перезапускать СУБД вместе с сервером 1С?

Нет, PostgreSQL или MS SQL перезапускать не требуется. Но после перезапуска агента на стороне СУБД могут остаться зависшие сессии от старых рабочих процессов — при большом их количестве завершите их вручную средствами СУБД.

Как настроить автоматический запуск сервера 1С после перезагрузки Linux?

Выполните sudo systemctl enable <имя службы>. При стандартной установке платформы служба обычно уже включена в автозагрузку — проверить можно командой systemctl is-enabled <имя службы>.

Чем перезапуск отличается от перезагрузки всего сервера Linux?

Перезапуск службы затрагивает только кластер 1С и занимает секунды. Перезагрузка ОС останавливает все сервисы, включая СУБД, веб-сервер и агенты резервного копирования, и нужна только при обновлении ядра или системных библиотек.

Итог

Что важно запомнить

Перезапуск сервера 1С в Linux выполняется через systemctl restart с точным именем службы. Перед перезапуском проверьте и завершите активные сеансы, после — убедитесь в статусе active (running) и доступности кластера. Для точечных проблем используйте утилиту rac вместо полного перезапуска.