Qt:在ubuntu中使用crontab定期启动一个消息框

Qt: launch a message box periodically with crontab in ubuntu

本文关键字:启动 消息 一个 ubuntu crontab Qt      更新时间:2023-10-16

我正试图每分钟启动一个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服务器。