При установке сервера «1С:Предприятие» на операционную систему Linux можно столкнуться с неприятной ситуацией: попытка запустить конфигуратор, активировать лицензию или просто подключиться к базе данных приводит к длительным «зависаниям». Процесс может занимать много минут или вовсе не завершаться. Разберем основные причины такого поведения и пошагово рассмотрим, как их устранить.
Это самая частая и простая в исправлении причина. Сервер 1С состоит из нескольких взаимодействующих служб: агент сервера (ragent), менеджер кластера (rmngr) и рабочие процессы (rphost). Они активно общаются между собой по сети, используя имя хоста (имя компьютера). Если система не может быстро сопоставить собственное имя с IP-адресом, возникают тайм-ауты, которые мы и наблюдаем в виде зависаний.
Проанализируем и исправим эту ситуацию. Нам нужно убедиться, что имя нашего сервера правильно сопоставлено с локальным IP-адресом 127.0.0.1.
Узнаем имя хоста. Выполним в терминале команду:
hostname
Допустим, команда вернула имя 1cserver.
Откроем файл hosts для редактирования. Для этого потребуются права суперпользователя:
sudo nano /etc/hosts
Проверим и исправим запись. В файле должна быть строка, которая связывает 127.0.0.1 с localhost и именем нашего хоста. Если такой строки нет или она неполная, приведем ее к следующему виду:
127.0.0.1 localhost 1cserver
Важно: Замените 1cserver на реальное имя вашего сервера, полученное на первом шаге.
Сохраним изменения (в редакторе nano это Ctrl+O, затем Enter, и Ctrl+X для выхода) и перезапустим службу сервера 1С:
sudo systemctl restart srv1cv8.service
После этого попробуйте снова запустить конфигуратор. В большинстве случаев проблема с зависанием будет решена.
Еще одна распространенная проблема, особенно на виртуальных машинах, — это нехватка энтропии. Энтропия — это, по сути, случайные данные, которые ядро операционной системы использует для криптографических операций (например, при установке защищенных соединений). Если случайных данных не хватает, процессы, которым они нужны, встают в очередь и ждут, что внешне выглядит как зависание.
Для решения этой проблемы установим специальную утилиту haveged, которая генерирует энтропию на основе колебаний в работе процессора.
Установка haveged. Выполним команду, соответствующую вашему дистрибутиву Linux.
Для Debian/Ubuntu:
sudo apt update
sudo apt install haveged
Для CentOS/RHEL/Fedora:
sudo yum install haveged
Запуск и добавление в автозагрузку. После установки нужно запустить службу и убедиться, что она будет стартовать автоматически при каждой загрузке системы.
sudo systemctl start haveged
sudo systemctl enable haveged
Проверка статуса службы. Убедимся, что служба работает без ошибок:
sudo systemctl status haveged
Если статус службы active (running), значит, все в порядке. После этого снова перезапустите сервер 1С и проверьте его работу.
Если вы используете 1С в клиент-серверном варианте с СУБД PostgreSQL, крайне важно уделить внимание ее версии и настройке. Неправильный выбор дистрибутива PostgreSQL — гарантированный источник проблем.
Используйте только специальные сборки. Для корректной работы с 1С требуется доработанная (патченная) версия PostgreSQL. Стандартные сборки из репозиториев дистрибутивов Linux не подходят. Они могут приводить к ошибкам сортировки, некорректным блокировкам и общей нестабильности. Скачивайте дистрибутивы только с официальных ресурсов:
releases.1c.ruПроверяйте совместимость версий. Перед установкой всегда сверяйтесь с документацией на портале ИТС, чтобы убедиться, что выбранная версия платформы «1С:Предприятие» совместима с вашей версией PostgreSQL.
Настройте локали. Для корректной работы с русским языком, особенно с операциями сортировки, в системе должна быть сгенерирована и установлена по умолчанию русскоязычная локаль, как правило, ru_RU.UTF-8. Ошибки в настройке локалей могут приводить к невозможности создать информационную базу через консоль администрирования. Для оптимизации работы с СУБД также полезно следить за состоянием индексов, для чего можно использовать генератор скрипта для их индексации.
Если вышеописанные шаги не помогли, стоит проверить общие моменты конфигурации сервера. Для комплексного подхода можно обратиться к пошаговым руководствам по реализации защищенной IT-инфраструктуры, а сам процесс установки упростить с помощью сценариев автоматизации.
Установка зависимостей:
Убедитесь, что установлены все необходимые для работы платформы 1С пакеты. Список может отличаться в зависимости от дистрибутива, особенно если речь идет о защищенных ОС — в этом случае стоит изучить особенности настройки зависимостей в Astra Linux. В общем случае основной набор выглядит так:
# Для Debian/Ubuntu
sudo apt install imagemagick unixodbc libgsf-1-114 ttf-mscorefonts-installer fontconfig libenchant1c2a
После установки шрифтов не забудьте обновить их кэш:
sudo fc-cache -f -v
Настройка службы systemd:
Начиная с версии 8.3.21, 1С использует systemd для управления службой сервера. Для корректной автозагрузки необходимо скопировать файл службы и активировать его:
Копируем файл службы (путь и версия могут отличаться):
sudo cp /opt/1cv8/x86_64/8.3.25.1445/srv1cv8-8.3.25.1445@.service /etc/systemd/system/srv1cv8.service
Устанавливаем правильного владельца:
sudo chown root:root /etc/systemd/system/srv1cv8.service
Обновляем конфигурацию systemd, включаем и запускаем службу:
sudo systemctl daemon-reload
sudo systemctl enable srv1cv8.service
sudo systemctl start srv1cv8.service
Технологический журнал:
Если проблема остается, последним средством диагностики является технологический журнал 1С. Создав файл logcfg.xml в каталоге conf платформы (например, /opt/1cv8/x86_64/8.3.25.1445/conf/), можно включить детальное логирование всех событий сервера. Анализ логов поможет точно определить, на каком этапе происходит задержка: будь то обращение к СУБД, работа с лицензиями или сетевое взаимодействие. Для удобства анализа больших файлов журнала существуют инструменты, которые позволяют, например, убрать лишние переносы строк.