我是新手使用crontab,我一直在努力获得一个简单的cron工作 . 我希望每隔1分钟按F5刷新Mozzila Firefox . 我正在使用xdotool按F5 . 我有脚本 /usr/local/bin/refresh.sh:
#!/bin/bash
xdotool search --name "Mozilla Firefox" key F5
如果我在命令行中运行它,它工作正常 . 许可:
-rwxr-xr-x. 1 root root 89 15. čec 10.32 refresh.sh
在 crontab 我有:
*/1 * * * * cd /usr/local/bin && sh refresh.sh
但是由cron运行的脚本不起作用 . 谁能告诉我我做错了什么?
2 回答
xdotool命令是X11的自动化工具,它允许您模拟键盘/鼠标输入,但由于crontab是独立运行的,因此需要定义
DISPLAY
变量以指定要使用的X Window System显示服务器 . 通常,当你甚至有tty关联时,特别是当你通过root
帐户运行命令时 .简而言之,您应该像以下一样定义您的工作:
或者您可以在文件的开头定义变量(如果是Vixie cron) . 见:Variables in crontab?
还要确保正在运行作业的用户已授予对所选X显示的访问权限 . 如果您需要授予访问权限,则需要通过
xhost
和setfacl
命令分配权限并指定额外的XAUTHORITY
变量,有关详细信息,请参阅:Xdotool using “DISPLAY=:0” .为什么不
这里不需要
cd /usr/local/bin
,因为你没有在/usr/local/bin
中运行cron作业在下面的场景中你需要
cd