Как настроить автозапуск сервера 1С на Linux для версий 8.3.18 и выше

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

С выходом версии платформы 1С:Предприятие 8.3.18 системные администраторы столкнулись с существенными изменениями в процессе установки. Разработчики реализовали возможность параллельной установки нескольких версий сервера на одну машину Linux. Однако это привело к тому, что привычные скрипты автозапуска (srv1cv8) и файлы конфигурации переименовали или вовсе убрали из стандартных путей /etc/init.d/ и /etc/sysconfig/. В этой статье мы подробно разберем, как правильно настроить автоматический запуск сервера 1С "по фен-шую", учитывая особенности современных дистрибутивов и новые механизмы платформы.

Разбор ситуации: почему старые методы не работают

Проанализируем архитектурные изменения. Ранее при установке rpm или deb пакетов инсталлятор автоматически создавал скрипт инициализации. Начиная с версии 8.3.18, файлы для запуска теперь "спрятаны" внутри директории конкретной версии платформы, например, в /opt/1cv8/x86_64/8.3.18.1128/. Это сделано для того, чтобы вы могли запускать одновременно кластер версии 8.3.18 и, например, 8.3.25, не создавая конфликтов имен сервисов. Мы выясним, как адаптировать систему под эти изменения для двух наиболее популярных семейств дистрибутивов: RedHat/CentOS и Debian/Ubuntu.

Вариант 1. Настройка через классический механизм init.d (System V)

Если вы привыкли использовать старый стиль управления сервисами или ваша операционная система настроена на работу с init.d, рассмотрим пошагово процесс ручной регистрации службы. Посмотрим на примере CentOS и Ubuntu.

  1. Поиск эталонных файлов. Перейдем в каталог установленной версии платформы. Нам понадобятся два файла: srv1cv83 (скрипт запуска) и srv1cv83.conf (параметры окружения). Обычно они лежат в /opt/1cv8/x86_64/<номер_версии>/.
  2. Копирование скрипта. Скопируем исполняемый файл в системную директорию:
    
    sudo cp /opt/1cv8/x86_64/8.3.18.1128/srv1cv83 /etc/init.d/srv1cv83
    sudo chmod +x /etc/init.d/srv1cv83
    
  3. Настройка конфигурации. Здесь есть важное различие в путях:
    • Для CentOS/RedHat/РЕД ОС: копируем файл в /etc/sysconfig/, убирая расширение .conf. sudo cp /opt/1cv8/x86_64/8.3.18.1128/srv1cv83.conf /etc/sysconfig/srv1cv83
    • Для Ubuntu/Debian: копируем файл в /etc/default/, также без расширения. sudo cp /opt/1cv8/x86_64/8.3.18.1128/srv1cv83.conf /etc/default/srv1cv83
  4. Регистрация службы. Чтобы система понимала, что сервис нужно запускать при загрузке, выполним команды:
    • В CentOS: chkconfig --add srv1cv83 и chkconfig srv1cv83 on.
    • В Ubuntu: update-rc.d srv1cv83 defaults.

Вариант 2. Современный подход с использованием systemd

Рассмотрим более правильный и современный способ управления через systemd. В новых версиях 1С (особенно в 8.3.20+) часто поставляются готовые юниты или шаблоны юнитов с символом @ в названии. Это позволяет управлять конкретными экземплярами сервера.

Разберем пример настройки, если у вас есть файл srv1cv83@.service. Символ @ означает, что это шаблонный юнит. Выясним, как его активировать:

  1. Скопируем файл юнита в системную папку: cp /opt/1cv8/x86_64/8.3.25.1257/srv1cv8-8.3.25.1257@.service /etc/systemd/system/.
  2. Загрузим конфигурацию менеджера: systemctl daemon-reload.
  3. Активируем конкретную версию, подставляя её номер после "собачки": systemctl enable srv1cv83@8.3.25.1257.
  4. Запустим службу: systemctl start srv1cv83@8.3.25.1257.

Важный момент: если вы используете обычный файл без шаблона (без символа @), просто переименуйте его в srv1cv83.service и управляйте им стандартными командами systemctl enable/start. Не забудьте проверить права доступа к исполняемым файлам в /opt/1cv8, они должны принадлежать пользователю usr1cv8.

Включение режима отладки (Debug Mode)

Проанализируем ситуацию, когда программистам требуется отладка на сервере. В init.d скриптах это решается правкой файла конфигурации. Откроем файл /etc/default/srv1cv83 (для Ubuntu) или /etc/sysconfig/srv1cv83 (для CentOS) и раскомментируем строку:

SRV1CV8_DEBUG=1

Если же вы используете systemd, "фен-шуйный" метод — это использование override файла, чтобы ваши правки не затерлись при обновлении платформы:

  1. Выполним команду: systemctl edit srv1cv83@8.3.25.1257.
  2. В открывшемся редакторе добавим секцию:
    
    [Service]
    Environment=SRV1CV8_DEBUG=1
    
  3. Сохраним файл и перезапустим сервис: systemctl restart srv1cv83@8.3.25.1257.

Решение типичной проблемы "Error: ragent file does not exists!"

Часто при ручном копировании скриптов из папки /opt возникает ошибка старта из-за неверных путей. Скрипт srv1cv83 внутри себя содержит логику поиска бинарных файлов. Проанализируем причину: если вы переименовали папку установки (например, вместо /opt/1cv8 использовали /opt/1C) или пытаетесь запустить скрипт от одной версии для папки другой версии — он не найдет ragent.

Решение: всегда проверяйте переменную G_BINDIR внутри скрипта или убедитесь, что структура каталогов соответствует стандартной /opt/1cv8/x86_64/.... Также убедитесь, что в системе установлены все необходимые библиотеки, такие как libicu и fontconfig, иначе ragent может аварийно завершаться сразу после старта, а система будет выдавать общую ошибку service failed to start.

Работа с утилитой ring (для продвинутых пользователей)

Начиная с версии 8.3.18, 1С продвигает использование утилиты ring. Она позволяет регистрировать экземпляры сервера в системе программно. Рассмотрим логику её работы: при установке через новый .run инсталлятор, утилита сама прописывает нужные пути и создает юниты в systemd. Если автоматика не сработала, рекомендуется ознакомиться с командой /opt/1cv8/common/ring 1c-enterprise-instance create, которая позволяет создать настроенный экземпляр сервера с указанием портов и путей к данным. Это наиболее перспективный метод управления, который минимизирует ручное копирование файлов скриптов.

Подведем итог: для версий 8.3.18+ основным инструментом управления становится systemctl. Использование старых init.d скриптов возможно, но требует ручного копирования файлов из каталога установки в системные папки /etc/init.d и /etc/default (или /etc/sysconfig). Всегда проверяйте права пользователя usr1cv8 на домашнюю директорию и папку с данными, так как при обновлении платформы права иногда могут сбиваться.

← На главную