5

我是使用 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 运行的脚本不起作用。谁能告诉我我做错了什么?

4

6 回答 6

8
于 2016-07-16T13:11:27.540 回答
1

所以我尝试了很多东西,但由于某种原因在 Ubuntu 18.04 上没有echo $display返回。此外,似乎工作的唯一环境变量设置器是添加::1:0

export DISPLAY=":1"

直接到 cron 正在运行的脚本。

于 2018-12-29T23:23:47.960 回答
1

首先,正如 Parth 所说,确保在终端上键入 echo $DISPLAY 并获取输出(对我来说,出于某种原因,它是 :10.0)。然后在您从 cron 调用的脚本中,在调用 xdotool 之前,编写以下内容:

export DISPLAY=:10.0 

#instead of :10.0 write your own output from before

export XAUTHORITY=/root/.Xauthority  

#if you are not a root user, instead of /root/.Xauthority write ~/.Xauthority
于 2020-01-30T07:42:39.090 回答
0

为什么不

*/1 * * * * /usr/local/bin/refresh.sh

cd /usr/local/bin在这里没有必要,因为您没有在其中运行 cron 作业/usr/local/bin

您需要cd在以下情况下

*/1 * * * * cd /usr/local/bin && ls >/var/somelog # wish to execute ls in a particular directory
于 2016-07-15T09:04:47.293 回答
-1
于 2021-06-22T13:00:56.723 回答
-1

你能试试这个吗

*/1 * * * * 显示=:0 /usr/local/bin/refresh.sh

于 2021-06-22T13:03:31.133 回答