我正在尝试运行一个程序,它会弹出一个图形通知。举个简单的例子,我的 cron 设置如下
@hourly xlogo
如果我通过交互式命令启动 xlogo,它工作正常。但是,当通过 cron 运行时,xlogo 窗口永远不会启动。我如何让 cron 让 xlogo 启动窗口,或者它从根本上就不是为此设计的?
答案1
使用 crontab 完全可以做到这一点。
您需要告诉脚本您想要在哪个屏幕xlogo
上运行。
尝试将这一行改成这样:
@hourly /usr/bin/env DISPLAY=:0.0 /usr/bin/xlogo
告诉 crontab 您希望它使用什么显示。根据程序的不同,您可能还需要添加更多环境变量。
答案2
您需要通过命令告诉它要使用哪个显示export
。我还建议始终使用文件的完整路径cron
。这将为您省去很多麻烦,因为 cron 在有限的环境中运行,因此它并不总是具有与您的终端相同的 $PATH 变量。这意味着它并不总是知道程序位于何处。
无论如何,你的 cron 作业看起来应该是这样的:
@hourly export DISPLAY=:0.0 && /usr/bin/xlogo