Запуск нескольких экземпляров сервера 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% из Базы знаний

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

На Инфостарте не единожды поднималась тема запуска нескольких экземпляров сервера 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 Системный администратор Программист Россия Бесплатно (free)

30 декабря, пик предновогодних продаж, и тут — полная катастрофа. Сервер с 1С в единственной торговой точке пал жертвой вируса-шифровальщика. Бизнес встал, выручка — ноль, резервных копий нет. Знакомая ситуация? Но вместо того, чтобы просто переустановить «убитую» Windows, мы пошли другим путем. В свежей статье я честно рассказываю: почему сервер на «дешевых комплектующих» — это бомба замедленного действия. Как вирус проник в систему, если кассир работает исправно? Зачем микробизнесу смотреть в сторону бесплатного Linux (и при чем тут лицензии на Windows Server + MS SQL). Реально ли подружить 1С, торговое оборудование и «неродной» интерфейс? Спойлер: Сервер ожил, базу восстановили (да, это было больно), а клиент теперь спит спокойно.

20.07.2026    1274    maxber    7    

3

Linux Технологический журнал 1С:Предприятие 8 Бесплатно (free)

Графическая утилита, сделанная по принципу Microsoft SQL Server Profiler, но для СУБД PostgreSQL Позволяет легко настраивать сбор планов запросов как средствами PostgreSQL, так и технологическим журналом 1С Предприятие с их последующей визуализацией. Простая, понятная для пользователей утилита, не требующая прав администратора для визуализации, и требующая их для настройки. Скомпилированная в исполняемый файл.

20.05.2026    3101    capitan    4    

10

Linux Системный администратор Программист 1С:Предприятие 8 Абонемент ($m)

Графическое приложение на базе PyQt6, которое предоставляет простой интерфейс для очистки локального кэша баз данных 1С Предприятие для ОС Linux. Простая, понятная для пользователей утилита, не требующая прав администратора Скомпилированная в исполняемый файл

06.04.2026    2022    capitan    0    

2

Архивирование (backup) Linux Системный администратор Программист Россия Абонемент ($m)

Сценарий предназначен для восстановления баз данных PostgreSQL в Linux под учетной записью postgres из резервных копий, сформированных программой pg_dump в формате plain или custom.

1 стартмани

20.02.2026    1064    0    Магнат    2    

2

Архивирование (backup) Администрирование СУБД Linux Системный администратор Программист 1С:Предприятие 8 Россия Абонемент ($m)

Сценарий предназначен для избирательного создания ротационных резервных копий баз данных по дисциплине 2-1 (2 копии, одна на другом физическом диске, другая на компьютере вне серверной комнаты) в форматах custom и/или plain кластера PostgreSQL, а также глобальных свойств кластера: пользователи, пароли и т.д.

2 стартмани

19.02.2026    1200    0    Магнат    1    

3

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

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

2 стартмани

03.02.2026    1617    4    Магнат    1    

2

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

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

10 стартмани

29.01.2026    1893    9    Магнат    16    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Error34 55 10.12.20 16:11 Сейчас в теме
Прикольно, только один момент немного неудобен, keytab с таким конфигом придется класть в каждую платформу, намного удобнее вынести его хоть даже в домашний каталог учетки запуска 1С или в /opt/1C (/opt/1cv83), дать права и тогда лишняя операция при установке и запуске новой платформы отпадет.
PS для масс: это я про доменную авторизацию, которую многие не используют
2. Sloth 402 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 402 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 402 08.07.21 12:32 Сейчас в теме
(8) Уберите
PrivateTmp=yes

из секции [Service]
10. user1921424 13.03.23 19:22 Сейчас в теме
Подскажите, как быть с версиями 8.3.21 и старше? В этих версиях изменился способ регистрации юнита и т.д. Есть ли подобный способ для этих версий?
11. Sloth 402 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 402 13.11.25 15:06 Сейчас в теме
(14) Сработает, от чего не сработать. Мы у себя неизменно пользуемся.
Для 8.5 правда имя поправил на srv1cv8@.service 😊
Для отправки сообщения требуется регистрация/авторизация