【发布时间】:2014-08-22 05:29:28
【问题描述】:
当我通常从命令行运行我的应用程序时,它看起来像这样:
但是,当我使用 crontab(或“at”命令)安排命令时,窗口如下所示:
我安排的命令如下:“export DISPLAY=:0.0 && myprogram”。我使用 Ubuntu 12.04 64 位。
知道如何获得预定窗口的漂亮外观吗?谢谢你。
【问题讨论】:
-
答案已更新,请查看我添加了另一种可能的方法来解决您的问题。
当我通常从命令行运行我的应用程序时,它看起来像这样:
但是,当我使用 crontab(或“at”命令)安排命令时,窗口如下所示:
我安排的命令如下:“export DISPLAY=:0.0 && myprogram”。我使用 Ubuntu 12.04 64 位。
知道如何获得预定窗口的漂亮外观吗?谢谢你。
【问题讨论】:
我认为当您使用 crontab 运行程序时,该程序正在与其他环境一起运行。没有您已经进行的配置的环境。
例如,在您的用户空间中,您说QT 主题,您希望它看起来像GNOME。
如果用户 root 运行应用程序,则可能会发生这种情况,因为 root 具有不同的环境,因此 QT gui 主题/外观的设置不同。
可能的解决方案,尝试指定将运行应用程序的环境。
另一种解决方案可以通过编程方式选择主题,here 你有关于该主题的讨论。
测试:尝试自己以 root 身份运行应用,并比较结果。不要使用sudo。试试su -c。
【讨论】:
从 crontab 启动的程序有不同的环境。因此,您可以创建一个 shell 脚本来获取您的配置文件,例如使用 bash:
#!/bin/bash
source ~/.profile
export DISPLAY=:0.0
exec myprogram
然后从 crontab 运行它。如果您通常不使用 bash,则可能需要将脚本与您使用的 shell 一起使用。
另一种方法是调查您的个人资料并找出环境中的哪些差异会改变窗口外观。然后在此类脚本中导出该变量,或将其直接放入 crontab 作业中,就像您对变量 DISPLAY 所做的那样。
【讨论】:
.profile 确实改变了窗口外观。然后你可以查看那里并找到哪个特定变量改变了它。否则转储您当前的环境:set > env.sh 并检查它是否有效。然后你可以从那里删除变量并找到罪魁祸首。