Я пытаюсь запустить окно сообщения Qt каждую минуту. Я добавил строку в crontab для запуска исполняемого файла программы Qt и перенаправил вывод ошибок в файл в моем домашнем каталоге.
Нет проблем с программой Qt, которая запускает окно сообщения, потому что я тестировал его, но когда я пытаюсь запустить его с помощью crontab, возникает следующая ошибка:
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, но ошибка не исчезла.
Есть идеи о том, как решить эту проблему?
Я думаю, что среда DISPLAY отсутствует. Я предлагаю вам обернуть ваше приложение в скрипт-обертку (назовем его horloge.sh):
#!/bin/sh
DISPLAY=:0
export DISPLAY
/home/salwa/computing/cpp/horloge
Затем поместите horloge.sh в ваш crontab. Не забудьте сделать chmod u+x horloge.sh
так что скрипт исполняемый.
Убедитесь, что пользователь, который запускает ваше приложение в строке crontab, это вы. В противном случае он может не иметь разрешений на использование X-сервера.