Автозапуск и авторестарт Qt Gui Application в Linux
Здравствуйте, дорогие форумчане! Сделал специальную тему для такого вопрос.
У меня Debian 9.5.
Моё приложение не получилось запустить с помощью утилиты systemd.
Писал, что
- QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
- qt.qpa.screen: QXcbConnection: Could not connect to display
- Could not connect to any X display
По мере изучения вопроса я понял, что systemd может стартовать и рестортовать в случае падения программы без GUI.
Посмотрел в сторону обычной автозагрузке - Desktop Entry Files. Статья есть на этом сайте.
Автозагрузка прошла успешно. Но мне нужен еще и рестарт программы при её закрытие, крушение.
Посмотрел в сторону
supervisor
. Думал, что она меня спасет. Но нет. После переделывания
тестового примера
и попытки запуска получил тоже:
- QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
- qt.qpa.screen: QXcbConnection: Could not connect to display
- Could not connect to any X display.
Вот мой скрипт:
- Файл: /usr/local/bin/long.sh
- #!/bin/bash
- /opt/control_block/b/bin/control_block
Вот кофиг:
- Файл: /etc/supervisor/conf.d/long_script.conf
- [program:long_script]
- command=/usr/local/bin/long.sh
- autostart=true
- autorestart=true
- stderr_logfile=/var/log/long.err.log
- stdout_logfile=/var/log/long.out.log
Не могли бы помочь, почему не хочет подключиться к X-Server?
Вручную запустить могу. Переменная DISPLAY установлена.
Здесь говорится о такой проблеме. Приводится код для устранения. Но и упоминается, что это:
- QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
qt.qpa.screen: QXcbConnection: Could not connect to display
всего-лишь warning.
Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
- Соңғы пікірлер
- AKСәуір 1, 2025, 11:41 Т.Ж.Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
- VPНаурыз 9, 2025, 4:14 Т.Қ.Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
- ИМҚар. 22, 2024, 9:51 Т.Қ.Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
- Енді форумда талқылаңыз
- fАқп. 15, 2025, 1:46 Т.Қ.Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
- Спасибо большое за помощь и простите за то что отнял время своей невнимательностью.
Добрый день!
Я перенёс ваш вопрос в раздел Linux, он здесь будет более к месту.
Что касается самого вопроса, то возможно, что нужно запускать от имени определённого пользователя.
Например так подправить
Либо с каким-то иным пользователем, но не от имени рута стартовать вашу программу
Не получается... Решил пробовать скрипт, выполняемый при загрузке. В скрипте вечный цикл по старту программы.