我想在 cron 中安排一个 GUI 应用程序,但有一个问题。当 cron 尝试运行计划任务(在我的情况下是 amarok)时,它会抛出cannot connect to X server
错误。我认为这是因为该应用程序是从我的 root 帐户执行的。是否可以从 root 运行应用程序但假装是其他人?
谢谢。
答案1
Cronjobs 在非常受限的环境中运行,这意味着它不知道在哪里找到 X 服务器($DISPLAY
环境变量不存在)。
如果您想从 crontab 执行 X 应用程序,您需要首先设置$DISPLAY
环境变量。
要么调用 AmaroK財说,或者为整个 cron 脚本设置它:
DISPLAY=:0.0
# ...
* * * * * amarok
另外,我建议您以您“想要成为”的帐户而不是 root 帐户来运行它,这是通过以crontab -e
用户身份运行来完成的。
编辑:
您还可以这样做:
* * * * * export DISPLAY=:0.0 && amarok