Почему сервер 1С на Linux долго запускается и виснет при подключении?

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

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

Решение 1: Проверка файла /etc/hosts и разрешения имен

Это самая частая и простая в исправлении причина. Сервер 1С состоит из нескольких взаимодействующих служб: агент сервера (ragent), менеджер кластера (rmngr) и рабочие процессы (rphost). Они активно общаются между собой по сети, используя имя хоста (имя компьютера). Если система не может быстро сопоставить собственное имя с IP-адресом, возникают тайм-ауты, которые мы и наблюдаем в виде зависаний.

Проанализируем и исправим эту ситуацию. Нам нужно убедиться, что имя нашего сервера правильно сопоставлено с локальным IP-адресом 127.0.0.1.

  1. Узнаем имя хоста. Выполним в терминале команду:

    hostname

    Допустим, команда вернула имя 1cserver.

  2. Откроем файл hosts для редактирования. Для этого потребуются права суперпользователя:

    sudo nano /etc/hosts
  3. Проверим и исправим запись. В файле должна быть строка, которая связывает 127.0.0.1 с localhost и именем нашего хоста. Если такой строки нет или она неполная, приведем ее к следующему виду:

    127.0.0.1 localhost 1cserver

    Важно: Замените 1cserver на реальное имя вашего сервера, полученное на первом шаге.

  4. Сохраним изменения (в редакторе nano это Ctrl+O, затем Enter, и Ctrl+X для выхода) и перезапустим службу сервера 1С:

    sudo systemctl restart srv1cv8.service

    После этого попробуйте снова запустить конфигуратор. В большинстве случаев проблема с зависанием будет решена.

Решение 2: Устранение нехватки энтропии

Еще одна распространенная проблема, особенно на виртуальных машинах, — это нехватка энтропии. Энтропия — это, по сути, случайные данные, которые ядро операционной системы использует для криптографических операций (например, при установке защищенных соединений). Если случайных данных не хватает, процессы, которым они нужны, встают в очередь и ждут, что внешне выглядит как зависание.

Для решения этой проблемы установим специальную утилиту haveged, которая генерирует энтропию на основе колебаний в работе процессора.

  1. Установка haveged. Выполним команду, соответствующую вашему дистрибутиву Linux.

    Для Debian/Ubuntu:

    
    sudo apt update
    sudo apt install haveged
    

    Для CentOS/RHEL/Fedora:

    sudo yum install haveged
  2. Запуск и добавление в автозагрузку. После установки нужно запустить службу и убедиться, что она будет стартовать автоматически при каждой загрузке системы.

    
    sudo systemctl start haveged
    sudo systemctl enable haveged
    
  3. Проверка статуса службы. Убедимся, что служба работает без ошибок:

    sudo systemctl status haveged

    Если статус службы active (running), значит, все в порядке. После этого снова перезапустите сервер 1С и проверьте его работу.

Решение 3: Правильная версия PostgreSQL и настройка локалей

Если вы используете 1С в клиент-серверном варианте с СУБД PostgreSQL, крайне важно уделить внимание ее версии и настройке. Неправильный выбор дистрибутива PostgreSQL — гарантированный источник проблем.

Общие рекомендации по установке и диагностике

Если вышеописанные шаги не помогли, стоит проверить общие моменты конфигурации сервера. Для комплексного подхода можно обратиться к пошаговым руководствам по реализации защищенной 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 для управления службой сервера. Для корректной автозагрузки необходимо скопировать файл службы и активировать его:

  1. Копируем файл службы (путь и версия могут отличаться):

    
    sudo cp /opt/1cv8/x86_64/8.3.25.1445/srv1cv8-8.3.25.1445@.service /etc/systemd/system/srv1cv8.service
    
  2. Устанавливаем правильного владельца:

    sudo chown root:root /etc/systemd/system/srv1cv8.service
  3. Обновляем конфигурацию 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/), можно включить детальное логирование всех событий сервера. Анализ логов поможет точно определить, на каком этапе происходит задержка: будь то обращение к СУБД, работа с лицензиями или сетевое взаимодействие. Для удобства анализа больших файлов журнала существуют инструменты, которые позволяют, например, убрать лишние переносы строк.

← На главную