Не задана переменная X11 DISPLAY.

Я запускаю Raspbian с сервером fadecandy, использую vncserver для загрузки экземпляра X11 и запускаю java-приложение для управления светодиодами, управляемыми fadecandy. Мне нужно, чтобы это загружалось во время процесса загрузки.

В /etc/init.d/ у меня есть bash-скрипт под названием fadecandy:

#! /bin/sh
# /etc/init.d/fadecandy
# start fadecandy server

sudo fcserver &
sudo vncserver &
export DISPLAY=":1"
/home/pi/fadecandy/runstopturn/runstopturn &

runstopturn не выполняется. Если я вхожу в систему и запускаю ее вручную, я получаю сообщение об ошибке "Переменная X11 DISPLAY не была установлена..."

Введя в командной строке следующее:

export DISPLAY=":1"
runstopturn

тогда все работает нормально.

Мне нужна помощь в настройке переменной DISPLAY или ее передаче в сценарий Java при загрузке.


person Jerrold Patterson    schedule 13.05.2015    source источник
comment
Нет сервера X11, работающего при загрузке, и нет сеанса X11, к которому у вас есть доступ на этом конкретном дисплее, пока вы не войдете в систему или не запустите его вручную. Чего именно вы хотите добиться?   -  person tripleee    schedule 14.05.2015
comment
О каком именно количестве светодиодов идет речь, если для их мигания нужны Linux, X11 и JVM?   -  person Matti Virkkunen    schedule 14.05.2015
comment
256 - Это только для задних фонарей. youtube.com/watch?v=vP0Oil0rUnc Обратите внимание, что это больше, чем просто мигание и выкл. Также есть дизеринг. Я прибегнул к прямому питону с модулем PIM/Pillow. X-сервер не требуется.   -  person Jerrold Patterson    schedule 15.05.2015
comment
Tripleee - я знаю, что во время загрузки не работает сервер X11. Запуск vncserver также не запускает графический дисплей. Насколько я понимаю (что довольно ограничено), он просто загружает и среду. Это определенно удовлетворило приложение Java Processing для работы без головы.   -  person Jerrold Patterson    schedule 15.05.2015
comment
Зачем идти на все эти проблемы? Теперь я могу изменять внешний вид и стиль поворотников на лету. Загрузите несколько новых файлов png, и у меня будет новый вид. На видео видно пару красных точек с желтыми мигалками. С тех пор я переделал их, чтобы они стали большими красными крестиками с каждой стороны, отдавая дань уважения Honda VTX, на которую я их надел.   -  person Jerrold Patterson    schedule 15.05.2015
comment
Матти - Это финское имя?   -  person Jerrold Patterson    schedule 15.05.2015


Ответы (2)


Трудно сказать без дополнительных логов, но почему вы используете vncserver как root? Вероятно, это начало ваших проблем.

Попробуйте запустить от имени менее привилегированного пользователя (создайте его при необходимости) или, если вам действительно нужно, запустите весь скрипт от имени root, но смешивание и сопоставление пользователей затруднит правильную настройку окружения и конфигурации. .

Изменить: дополнительно проверьте, на что на самом деле указывает /bin/sh. При небольших установках это может быть менее похоже на Bash, чем вы думаете на первый взгляд (т. е. вам может понадобиться использовать setenv - некоторые подробности здесь).

person declension    schedule 13.05.2015
comment
Спасибо за ваш комментарий Ник. Я действительно не такой умный. Я запускаю его как root, потому что, если я не добавлю sudo перед fcserver и vncserver, они не запустятся. Я даже пытался экспортировать SUDO DISPLAY. Моя последняя попытка состояла в том, чтобы включить System.setProperty(DISPLAY,:1); в java-приложении. Нет радости. Кстати, разве не все скрипты в init.d запускаются от имени root? - person Jerrold Patterson; 14.05.2015

Слишком расстроен этой проблемой. Есть несколько способов содрать шкуру с кота или управлять сервером fadecandy... Я просто собираюсь сделать все это на питоне. Должно быть более легкое решение, и мне не нужен экземпляр X11.

Еще раз спасибо Нику за взвешивание.

person Jerrold Patterson    schedule 13.05.2015
comment
Джеррольд, я работал с Fadecandy с расширениями node.js и обнаружил, что они очень легковесны и просты в настройке. Если вы в конечном итоге пойдете в этом направлении, дайте мне знать. Я буду устанавливать проект в эти выходные, а после этого проведу вскрытие. Удачи! - person ajaxlex; 18.06.2015