Ошибка «Инициализация графической подсистемы» в 1С
Данная ошибка, если сервер приложений 1С крутится на Linux, явление распространенное. Чтобы ее решить, достаточно перейти в директорию /opt/1C/v8.2/x86_64/utils, запустить скрипт config_server и доустановить необходимые пакеты, которые он укажет в своем выводе, после этого ошибка как правило исчезает. Но на этой неделе я столкнулся с ситуацией когда, точно все необходимые пакеты в системе были установлены, скрипт не выдавал ничего, а ошибка тем не менее возникала.
Начал ковырять:
- Для начала возникла мысль, что какой-то из пакетов поставился криво, решил переставить зависимости.
- После удаления очередного пакета, скрипт мне выдал более информативное сообщение, а именно:
./config_server: line 190: [: too many arguments - Полез в сам скрипт, в 190 строке [ ! -e $aliasFullName ] && return 1 , т. е. здесь скрипт пытается проверить, существует ли файл с именем,
сохраненным в переменной $aliasFullName — если нет, возвращает ошибку. В моем случае скрипт не мог нормально отработать, как я понял, из-за какой-то ошибки синтаксиса. - Чтобы обойти, добавил в начало 190 строки echo === $aliasFullName ====
- Вывод скрипта сразу же изменился, он начал плевать мне строку:
==== Can't detect SYSTEM_LIB_PATH, please set this environment variable manually!/libWand.so ====
==== Can't detect SYSTEM_LIB_PATH, please set this environment variable manually!/libfreetype.so ====
==== Can't detect SYSTEM_LIB_PATH, please set this environment variable manually!/libgsf-1.so ====
==== Can't detect SYSTEM_LIB_PATH, please set this environment variable manually!/libglib-2.0.so ====
==== Can't detect SYSTEM_LIB_PATH, please set this environment variable manually!/libodbc.so ==== - То есть, не может определить SYSTEM_LIB_PATH, и просит установить эту переменную окружения вручную.
- Прописывание переменных в /etc/environment ничего не дало.
- Ну Ок, закомментировал в скрипте config_server строку [ -z "$SYSTEM_LIB_PATH" ] && SYSTEM_LIB_PATH='getLibPath' и прописал полный путь SYSTEM_LIB_PATH="/usr/lib32"
- Доустановил обратно все удаленные ранее пакеты.
- Вывод скрипта опять поменялся на:
=== /lib:/lib32:/usr/lib:/usr/lib32:/lib/x86_64-linux-gnu/libWand.so ====
=== /lib:/lib32:/usr/lib:/usr/lib32:/lib/x86_64-linux-gnu/libWand.so ====
Please install following package: ImageMagick
=== /lib:/lib32:/usr/lib:/usr/lib32:/lib/x86_64-linux-gnu/libfreetype.so ====
Please install following package: FreeType
=== /lib:/lib32:/usr/lib:/usr/lib32:/lib/x86_64-linux-gnu/libgsf-1.so ====
Please install following package: libgsf
=== /lib:/lib32:/usr/lib:/usr/lib32:/lib/x86_64-linux-gnu/libglib-2.0.so ====
Please install following package: libglib
=== /lib:/lib32:/usr/lib:/usr/lib32:/lib/x86_64-linux-gnu/libodbc.so ====
Please install following package: UnixODBC - Посмотрел и действительно, часть библиотек лежала не в /usr/lib32 , а в /usr/lib
- Сделал симлинки
- Перестартовал 1С.
- Ошибка пропала, теперь все работает нормально.
4 комментария к “Ошибка «Инициализация графической подсистемы» в 1С”
С созданием необходимых симлинков проблема с графической подсистемой ушла.
Но появилась новая — в приложениях на управляемых формах не полностью отрисовывается интерфейс.
Вотскриншот того как выглядит интерфейс.
Система на сервере — debian wheezy x64
Система на клиенте — windows 2008
Есть мысли куда ковырнуть можно ?
Это через тонкий клиент подключаетесь или через веб-браузер?
И какая платформа 1С?
Как вариант можно поэксперементировать с подключением к базе, с компьютера на котором установлена не серверная а пользовательская ось, ну и разными браузерами. Везде ли будет такое поведение с отрисовкой интерфейса или где-то нормально работает?
После получения ответов на эти вопросы уже можно будет подумать более предметно.
Платформа была 8.2.18.104. Подключался тонким клиентом. Обновил до 8.3.3.658 — все заработало.
И кстати в 8.3.3 уже нет скрипта config_server. И папки conf тоже нет.
Я думаю, что все таки какая-то беда с шрифтами была.
Вполне вероятно, но далеко не факт, может закэшировалось криво, может аппаратное ускорение каким-то боком влияло. Иногда 1С это такой 1С =)
8.3 пока не трогал, все заказчики пока на 8.2 сидят. Странно что скрипт убрали, они все шрифты в сам бинарник запихнули получается?