在 Ubuntu 12.04 笔记本上执行“sudo su -”后,我执行了“crontab -e”,并添加了以下内容:
* * * * * env DISPLAY=:0.0 /usr/bin/gnome-calculator
Run Code Online (Sandbox Code Playgroud)
等了几分钟。什么都没有发生。我没有任何外部监视器,如果我在终端中运行此命令“env DISPLAY=:0.0 /usr/bin/gnome-calculator”,它就可以正常工作。但不是来自 cron。为什么?
系统日志仅包含以下内容:
May 24 14:37:01 localhost cron[1227]: (root) RELOAD (crontabs/root)
May 24 14:37:01 localhost CRON[16432]: (root) CMD (env DISPLAY=:0.0 /usr/bin/gnome-calculator )
Run Code Online (Sandbox Code Playgroud)
我已经尝试过“xhost + localhost”。
[root@NOTEBOOK /var/log] xhost
access control enabled, only authorized clients can connect
INET:localhost.localdomain
SI:localuser:USERNAME
[root@NOTEBOOK /var/log]
Run Code Online (Sandbox Code Playgroud)
因此,askubunut 上另一个类似问题的解决方案没有奏效。
我认为这是问题:
* * * * * env DISPLAY=:0.0 /usr/bin/gnome-calculator
将其设置为此似乎有效:
* * * * * env DISPLAY=:0 /usr/bin/gnome-calculator
Run Code Online (Sandbox Code Playgroud)
该env DISPLAY=:0告诉它出口到显示器:0-你可以找到你下TTY在输出w
然后crontab -e以您希望应用程序运行的普通用户身份运行,并粘贴以下行:
* * * * * env DISPLAY=:0 /usr/bin/gnome-calculator
Run Code Online (Sandbox Code Playgroud)
如果您不想crontab -e使用 编辑它vim,请事先运行它以使用nano:
export EDITOR=nano ; export VISUAL=nano
Run Code Online (Sandbox Code Playgroud)
请注意星号意味着它将每分钟、每小时和每天运行一次,因此除非您将其删除,否则它可能会非常烦人。
如果它仍然不起作用,请尝试运行以下命令:
sudo bash -c "echo $(whoami) > /etc/cron.allow"
Run Code Online (Sandbox Code Playgroud)
而且,如果您不想处理文本文件,则可以gnome-schedule改用。
参考:
| 归档时间: |
|
| 查看次数: |
8677 次 |
| 最近记录: |