2015-09-11 2 views
1

Я пытаюсь запустить окно сообщений Qt каждую минуту. Я добавил строку в crontab для запуска исполняемого файла программы Qt и перенаправил вывод ошибки в файл в моем домашнем каталоге. Там нет никаких проблем с программой Qt, которая запускает окно с сообщением, потому что я тестировал его, но когда я пытаюсь запустить его с кронтабом возникает следующая ошибка:Qt: периодически запускать окно сообщения crontab в ubuntu

QXcbConnection: Could not connect to display 
Aborted (core dumped) 

Я проверил, что через Интернет и нашел нить что может быть полезно: https://unix.stackexchange.com/questions/148945/could-not-connect-to-display-in-one-user-account/149026#149026
Я считаю, что первый ответ дает решение, но это неясно.
Предлагается использовать x11 для совместного использования рабочего стола и xauth для добавления мер безопасности, но не указывая, как их настроить. У меня уже установлен xauth, но ошибка сохраняется. Любые идеи о том, как решить эту проблему?

+0

Как насчет вставки линии кронтаба? – alesegdia

+0

*/1 * * * */home/salwa/computing/cpp/horloge 2 >> /home/salwa/cron.log – user2651062

ответ

0

Я думаю, что среда DISPLAY отсутствует. Я предлагаю вам обернуть применение в сценарии оболочки (назовем его horloge.sh):

#!/bin/sh 
DISPLAY=:0 
export DISPLAY 
/home/salwa/computing/cpp/horloge 

Затем положить horloge.sh в вашем кронтаб. Не забудьте сделать chmod u+x horloge.sh так, чтобы скрипт исполнялся.

+0

Это сработало! Большое спасибо JvO, я очень ценю это. – user2651062

0

Убедитесь, что пользователь, запускающий ваше приложение в линии crontab, является вами. В противном случае у него могут не быть разрешения на использование X-сервера.

+0

Спасибо Alesegdia за ваш ответ. На самом деле я новичок, и я впервые использую Qt. Я пользователь, который создал строку в crontab и запускает приложение (я имею в виду, что я делаю все, во время входа в тот же сеанс пользователя). Не могли бы вы дать мне объяснение начинающих термина X-сервера? – user2651062

+0

Несомненно. Вы знаете о менеджерах окон? Например: Gnome, Kde ... если да, то они ** клиенты **, которые должны быть запущены внутри ** X-сервера **. Как правило, ваша ОС автоматически настроена на запуск одного сервера при запуске, и клиент по вашему выбору работает там. Вы также можете вставить свою линию crontab для завершения. – alesegdia

 Смежные вопросы

  • Нет связанных вопросов^_^