Запуск нескольких экземпляров сервера 1С на GNU/Linux посредством systemd

30.06.21

Администрирование - Linux

Сказ о том, как сделать "кошерный" запуск сервера 1С на GNU/Linux для версии платформы 8.3.18 и выше, которая позволяет устанавливать одновременно пакеты нескольких версий.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
srv1cv83@.service
.service 1,65Kb
8 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

На Инфостарте не единожды поднималась тема запуска нескольких экземпляров сервера 1С под GNU/Linux и даже я на этом поприще успел отметится здесь

Однако в настоящем опусе речь пойдет про механизм запуска сервера 1С, который вендор до сих пор ни как не решится включить в "коробку", не смотря на явные его преимущества

Так как при установке пакетов сервера версии 8.3.18 скрипты инициализации (запуска/остановки сервера 1С) автоматически не устанавливаются и их требуется копировать вручную (о чем писано на ИТС), то предлагаемый ниже способ не будет конфликтовать с решением от 1С

ВАЖНО: Изложенная ниже информация относится к серверу 1С 64-х разрядной версии, если у вас 32-х разрядный, придется внести некоторые коррективы в приведенные здесь файлы!

Первым делом помещаем в каталог /etc/systemd/system файл шаблона сервиса srv1cv83@.service следующего содержания

[Unit]
Description=1C:Enterprise Server 8.3 (%i)
Requires=network.target

[Service]
Type=simple
User=usr1cv8
Group=grp1cv8

# Path to directory with claster data
Environment=SRV1CV8_DATA=/home/usr1cv8/.1cv8/1C/1cv8/

# Number of the cluster port created by default during first
# launch of ragent
Environment=SRV1CV8_PORT=1540

# Number of cluster agent main port. This port is used by the
# cluster console to address the central server. Cluster agent
# port is also specified as the IP port of the working server.
Environment=SRV1CV8_REGPORT=1541

# Port range for connection pool
Environment=SRV1CV8_RANGE=1560:1591

# Security level:
# 0 - unprotected connections
# 1 - protected connections only for the time of user
#     authentication
# 2 - permanently protected connections
Environment=SRV1CV8_SECLEV=0

# 1C:Enterprise server configuration debug mode
# blank - default - debug mode is off
# -debug - debug mode is on
#
Environment=SRV1CV8_DEBUG=

# Check period for connection loss detector, milliseconds
Environment=SRV1CV8_PING_PERIOD=1000

# Response timeout for connection loss detector, milliseconds
Environment=SRV1CV8_PING_TIMEOUT=5000

# 1C:Enterprise server keytab file.
# default - usr1cv83.keytab file in 1C:Enterprise server
#           installation directory
Environment=KRB5_KTNAME=/opt/1cv8/x86_64/%i/usr1cv8.keytab

ExecStart=/bin/sh -c "/opt/1cv8/x86_64/%i/ragent -d ${SRV1CV8_DATA} -port ${SRV1CV8_PORT} -regport ${SRV1CV8_REGPORT} \
-range ${SRV1CV8_RANGE} -seclev ${SRV1CV8_SECLEV} -pingPeriod ${SRV1CV8_PING_PERIOD} -pingTimeout ${SRV1CV8_PING_TIMEOUT} ${SRV1CV8_DEBUG}"
Restart=always
RestartSec=5

[Install]
DefaultInstance=default
WantedBy=multi-user.target

Если вы установили пакеты, например, версии 8.3.18.1208, то для запуска сервера 1С потребуется выполнить следующую команду

$ sudo systemctl start srv1cv83@8.3.18.1208

Чтобы прописать данный сервис в автозапуск необходимо выполнить команду

$ sudo systemctl enable srv1cv83@8.3.18.1208

В случае, если у вас нет нужды запускать несколько экземпляров сервиса с разной версией платформы, а вы просто хотите управлять запуском и остановкой сервиса через systemd, то это можно осуществить следующим образом:

установив нужную версию платформы (например 8.3.18.1208), сделать следующую символьную ссылку

$ sudo ln -s /opt/1cv8/x86_64/8.3.18.1208 /opt/1cv8/x86_64/default

в таком случае управлять сервисом можно с помощью экземпляра srv1cv83@default командами вида

$ sudo systemctl enable srv1cv83@default  # Включить автозапуск сервиса

$ sudo systemctl start srv1cv83@default   # Запустить сервис

$ sudo systemctl stop srv1cv83@default    # Остановить сервис

$ sudo systemctl status srv1cv83@default  # Посмотреть статус сервиса

$ sudo journalctl -ex -u srv1cv83@default # Посмотреть журнал событий сервиса

После установки новой версии (если вы обновили пакеты сервера) вам потребуется изменить ссылку /opt/1cv8/x86_64/current, так чтобы она ссылалась на каталог с новой версией платформы, что позволит и дальше работать с экземпляром srv1cv83@current не меняя более никаких настроек

Если в каком-то экземпляре сервиса необходимо изменить параметры запуска, то для этого можно создать каталог для "drop-in" файлов настроек

Так, например, чтобы включить режим отладки для экземпляра сервиса srv1cv83@8.3.18.1208 требуется создать файл /etc/systemd/system/srv1cv83@8.3.18.1208.service.d/debug.conf (имя файла может быть любым, главное чтобы расширение было .conf) следующего содержания

[Service]
Environment=SRV1CV8_DEBUG=-debug

Если, например, нам для экземпляра srv1cv83@default необходимо поменять номера портов запуска процессов сервера 1С (увеличив все значения на 1000), тогда мы создаем файл /etc/systemd/system/srv1cv83@default.service.d/ports.conf (имя файла может быть любым, главное чтобы расширение было .conf) и помещаем туда следующий текст

[Service]
Environment=SRV1CV8_PORT=2540
Environment=SRV1CV8_REGPORT=2541
Environment=SRV1CV8_RANGE=2560:2591

Если же вы хотите изменить параметры опроса агентом сервера процессов кластера для всех экземпляров сервиса, тогда достаточно создать файл /etc/systemd/system/srv1cv83@.service.d/pings.conf (каталог srv1v83@.service.d носит имя файла шаблона сервиса, а не его экземпляра, имя файла настроек может быть любым, главное чтобы расширение было .conf) следующего содержания

[Service]
Environment=SRV1CV8_PING_PERIOD=3000
Environment=SRV1CV8_PING_TIMEOUT=15000

На этом, пожалуй, все!

Дальше, выбор за вами, какой механизм запуска сервера 1С использовать у себя ...

Надеюсь, данный материал будет полезен для сообщества!

Исходная тема есть на Партнерском форме 1С, так что у кого есть доступ и кто разделяет подход, описанный в статье, давайте вместе "двигать" 1С в правильном направлении ;)

 

P.S. "Прикрутить" данный механизм запуска к платформе версий ниже 8.3.18 не составляет особого труда, для этого необходимо изменить в параметре ExecStart каталог из которого осуществляется запуск ragent

ExecStart=/bin/sh -c "/opt/1C/%I/x86_64/ragent -d ${SRV1CV8_DATA} -port ${SRV1CV8_PORT} -regport ${SRV1CV8_REGPORT} \
-range ${SRV1CV8_RANGE} -seclev ${SRV1CV8_SECLEV} -pingPeriod ${SRV1CV8_PING_PERIOD} -pingTimeout ${SRV1CV8_PING_TIMEOUT} ${SRV1CV8_DEBUG}"

и сделать символьную ссылку

$ sudo ln -s /opt/1C/v8.3 /opt/1C/default

 

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Разработка внешних компонент Администрирование СУБД Linux Обновление 1С Системный администратор Программист Россия Абонемент ($m)

Cценарий python предназначен для автоматизации процессов установки СУБД PostgreSQL, клиентского приложения и сервера 1С, службы RAS а также  и деинсталляции последних в cреде операционной системы Astra Linux. Полный режим работы выполняет деинсталляцию предшествующей версии 1С и установку последующей.  Возможны также только деинсталляция или только установка. Сценарий тестирован в среде ОС Astra Linux SE v.1.7.x,v.1.8.x  

2 стартмани

вчера в 12:00    158    2    Магнат    0    

1

Информационная безопасность Архивирование (backup) Linux Администрирование СУБД Системный администратор Программист Россия Абонемент ($m)

В публикации рассматриваются не только принципы проектирования IT инфраструктуры малого и среднего предприятия в фокусе последних требований законодательства о защите ПДн, но и дается пошаговая инструкция по установке и настройке полного пакета ПО на основе использования Российских компонентов. Данная структура программ полностью покрывает все потребности организации по использованию, архивированию и защите IT инфраструктуры. Практическое применение протестировано на различных предприятиях в течении 5 лет. Все программы протестированы на Astra Linux 1.8 Пример формы описания процессов установки пункт 20.9

10 стартмани

29.01.2026    355    3    Магнат    10    

0

Linux Системный администратор 1С 8.3 Бесплатно (free)

Устранение ошибки "libsoup3 symbols detected. Using libsoup2 and libsoup3 in the same process is not supported" при запуске 1С на Debian 13.

05.01.2026    640    kot1c    4    

6

Linux Системный администратор Бесплатно (free)

Есть великолепная инструкция по сборке постгреса из сорцов от Алмаза Шарипова https://almaz-sharipov.ru/article/linux-1c/pg1c, низкий ему поклон. Но с июня 2025 у 1С что-то внутре cломалось: ейные девопсы затупили и вендор начал выкладывать архив с битым файлом dsc.

10.10.2025    3616    Cocky_Idiot    7    

11

Linux Системный администратор Бесплатно (free)

Особенности настройки Astra Linux для получения зависимостей пакетов на примере установки платформы 8.3.27.1688.

18.08.2025    2539    Bessome    0    

3

Linux Системный администратор Бесплатно (free)

Статья рассматривает следующие вопросы для ОС Debian: - правильную установку компилятора gcc для сборки компонент из шаблона VNCOMP82, а также скрипт для обновления до версии gcc 3.4.6 (минимально рекомендуемая версия) под старые версии debian 3.x - актуальную ссылку на учебный диск фирмы 1С (свободная лицензия), который содержит шаблоны для внешних компонент по технологии NATIVE. - доработка шаблона VNCOMP82 под debian 64 bit. Использованные в статье скрипты можно использовать для настройки основного окружения. В статье не рассматриваются вопросы, связанные с установкой дистрибутивов.

11.08.2025    2127    Dima1205    12    

2

Linux Системный администратор Программист Бесплатно (free)

Расскажем, какие инструменты помогают анализировать и адаптировать код под Linux, приведем реальные примеры рефакторинга и разберем этапы тестирования перед переходом. А также представим чек-лист для проверки готовности конфигурации к работе на серверной платформе 1С под Linux.

28.07.2025    2850    aidar_safin    3    

10

Администрирование веб-серверов Linux Системный администратор Программист 1С:Предприятие 8 Бесплатно (free)

Проблема: При переходе с Windows на Linux многие сталкиваются с затруднениями при настройке аутентификации ОС в веб-клиенте 1С через Apache 2.4 (Debian). Решение: Команда Magnit Tech (Центр экспертизы 1С и Сопровождение 1C) разработала готовую инструкцию по настройке веб-клиента 1С на Debian 12 с поддержкой как Windows, так и Linux-серверов. Экономьте время — внедряйте проверенное!

25.07.2025    9770    biryukmikh    59    

30
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Error34 55 10.12.20 16:11 Сейчас в теме
Прикольно, только один момент немного неудобен, keytab с таким конфигом придется класть в каждую платформу, намного удобнее вынести его хоть даже в домашний каталог учетки запуска 1С или в /opt/1C (/opt/1cv83), дать права и тогда лишняя операция при установке и запуске новой платформы отпадет.
PS для масс: это я про доменную авторизацию, которую многие не используют
2. Sloth 401 11.12.20 10:34 Сейчас в теме
(1) значение взято из стандартного /etc/sysconfig/srv1cv83, но это же не проблема его изменить :)

Я, сказать честно, не пользуюсь данным механизмом, посему никак про "удобство" не подумал :(
3. Error34 55 11.12.20 10:47 Сейчас в теме
(2)
но это же не проблема его изменить :)

Полностью согласен.
Мы пользуемся, поэтому на стандартных конфигах запуска демона, я этот параметр меняю. Как дойдем до 8.3.18 хотябы на сервере разработки, попробую так стартовать как у вас в статье, как минимум это более удобно, да и RAS и сервера хранилищ конфигураций и ещё кое-что всё равно демонизируем через systemd
4. NickRomancer 21.12.20 10:00 Сейчас в теме
установив нужную версию платформы (например 8.3.18.1208), сделать следующую символьную ссылку

$ sudo ln -s /opt/1cv83/x86_64/8.3.18.1208 /opt/1cv83/x86_64/current

У меня платформа 8.3.18.1208 ставится в /opt/1cv8

Также потом почему-то
# systemctl status srv1cv83*current

выдаёт не так как на Вашем скриншоте, /opt/1cv8/x86_64/current/ragent вместо ожидаемого /opt/1cv8/x86_64/8.3.18.1208/ragent
srv1cv83*current.service - 1C:Enterprise Server 8.3 (current)
Loaded: loaded (/etc/systemd/system/srv1cv83*.service; enabled; vendor preset: disabled)
Active: active (running) since Пн 2020-12-21 09:56:58 MSK; 7min ago
Main PID: 8136 (ragent)
CGroup: /system.slice/system-srv1cv83.slice/srv1cv83*current.service
├─8136 /opt/1cv8/x86_64/current/ragent -d /home/usr1cv8/.1cv8/1C/1cv8/ -port 1540 -regport 1541 -range 1560:1591 -seclev 0 -pingPeriod 1000 -ping...
├─8154 /opt/1cv8/x86_64/8.3.18.1208/rmngr -port 1541 -host server1c -range 1560:1591 -d /home/usr1cv8/.1cv8/1C/1cv8/ -clstid 7bc075d5-eeb5-4b41-8...
└─8289 /opt/1cv8/x86_64/8.3.18.1208/rphost -range 1560:1590 -reghost server1c -regport 1541 -pid 9c469a15-1424-4600-90d9-27a751ace392

дек 21 09:56:58 server1c systemd[1]: Started 1C:Enterprise Server 8.3 (current).
5. Sloth 401 21.12.20 12:04 Сейчас в теме
(4)
У меня платформа 8.3.18.1208 ставится в /opt/1cv8

Моя опечатка, поправлю ...
выдаёт не так как на Вашем скриншоте,

У Вас выдает все правильно, - тот "каталог" с которого агент запускается.

Скриншот в заголовке статьи сделан на 8.3.17.1851, так что тут сравнивать как-то не приходится ;)
6. amw 05.04.21 16:07 Сейчас в теме
Добрый день!

Немного с опозданием вопрос:

Как увидеть, что на сервере включен ражим отладки? Я указал параметр Environment=SRV1CV8_DEBUG==debug и сделал рестарт службы 1с. Вывод systemctl status srv1cv83@current не дает об этом информацию. Также как и команда: ps -aux| grep 1c.
7. kirillkr 30 30.04.21 10:22 Сейчас в теме
(6) ошибка в написании значения Environment
Environment=SRV1CV8_DEBUG=-debug
amw; Sloth; +2 Ответить
8. metallicswar 08.07.21 03:27 Сейчас в теме
При запуске службы сервера через unit 1С ни в какую не хочет работать с локальными серверными hasp ключами. Есть мысли почему так и как это побороть? Используются две службы: 8.3.18.1483 и 8.3.15.2107, обе при запуске с помощью unit не видят локальный hasp. Целый день бился, не мог понять что не так, перепробовал разные драйвера hasp, попробовал запуск через init.d и волшебство, ключ сразу подхватился.
9. Sloth 401 08.07.21 12:32 Сейчас в теме
(8) Уберите
PrivateTmp=yes

из секции [Service]
10. user1921424 13.03.23 19:22 Сейчас в теме
Подскажите, как быть с версиями 8.3.21 и старше? В этих версиях изменился способ регистрации юнита и т.д. Есть ли подобный способ для этих версий?
11. Sloth 401 14.03.23 09:43 Сейчас в теме
(10) Вы можете использовать этот же файл сервиса без каких-либо изменений, при этом игнорируйте файл сервиса "из коробки"!
12. nik6841 08.07.23 13:38 Сейчас в теме
Здравствуйте.
Спасибо, с вашим файлом все заработало)
Centos7.5, устанавливал сервер 8.3.22.2143 по инструкции ИТС. А вот с запуском компонентов системы по https://its.1c.ru/db/v8322doc#bookmark:cs:TI000000123 не получилось, причем аналогичный печальный опыт был и с 8.3.21, и проблема с пунктами инструкции по созданию ссылки и добавлении в автозагрузку:
"# systemctl link /opt/1cv8/x86_64/8.3.22.2143/srv1cv8-8.3.22.2143@default.service
# systemctl enable srv1cv8-8.3.22.2143@default.service"
После этого лезет ошибка Too many levels of symbolic links и сервис в автозагрузку не добавляется.
Что не так в инструкции или, видимо, в руках? можете подсказать?
(11)
13. user1080705 30.08.23 14:05 Сейчас в теме
(12) systemctl enable /opt/1cv8/x86_64/8.3.22.2143/srv1cv8-8.3.22.2143@.service
14. AlxAlp 13.11.25 05:16 Сейчас в теме
Для 27 платформы сработает?
15. Sloth 401 13.11.25 15:06 Сейчас в теме
(14) Сработает, от чего не сработать. Мы у себя неизменно пользуемся.
Для 8.5 правда имя поправил на srv1cv8@.service 😊
Для отправки сообщения требуется регистрация/авторизация