apa*_*jja 3 cron gui shell-script
我需要运行包含 Xdotool 代码的 shell 脚本/home/z/Desktop/tempo/run.sh
。我尝试过很多方法DISPLAY=:0
但总是行不通。
我已经尝试过以下每个代码,但不起作用:
* * * * * export DISPLAY=:0 cd /home/z/Desktop/tempo; ./run.sh
* * * * * export DISPLAY=:0; cd /home/z/Desktop/tempo; ./run.sh
* * * * * export DISPLAY=:0 && cd /home/z/Desktop/tempo; ./run.sh
* * * * * DISPLAY=:0 cd /home/z/Desktop/tempo; ./run.sh
* * * * * DISPLAY=:0; cd /home/z/Desktop/tempo; ./run.sh
* * * * * DISPLAY=:0 && cd /home/z/Desktop/tempo; ./run.sh
Run Code Online (Sandbox Code Playgroud)
直接运行也不行:
* * * * * export DISPLAY=:0 xdotool mousemove 20 20
* * * * * export DISPLAY=:0; xdotool mousemove 20 20
* * * * * export DISPLAY=:0 && xdotool mousemove 20 20
* * * * * DISPLAY=:0 xdotool mousemove 20 20
* * * * * DISPLAY=:0; xdotool mousemove 20 20
* * * * * DISPLAY=:0 && xdotool mousemove 20 20
Run Code Online (Sandbox Code Playgroud)
我总是看不到鼠标在上面的每一行代码上移动。
我还测试了 Xdotool 代码以发出无效的网站 URI 请求并查看日志。遗憾的是日志仍然是空白的。
* * * * * DISPLAY=:0 xdotool mousemove 20 20
Run Code Online (Sandbox Code Playgroud)
至少只要它位于与相应显示器上具有 X 会话的用户相同的用户的 crontab 中,就应该可以工作。
如果另一个用户要执行鼠标移动,您需要授予他访问您的显示器的权限。这可以通过给他 MIT Magick Cookie 供您显示并让他将其安装在他自己的 X auth 存储中(使用xauth
)来完成,或者可以通过以下方式完成:
xhost +si:localuser:the-user
Run Code Online (Sandbox Code Playgroud)
或者可以通过授予他访问您自己的 X auth 存储的权限来完成,例如,通过执行以下操作:
setfacl -m u:the-user:r ~/.Xauthority
Run Code Online (Sandbox Code Playgroud)
并将 crontab 行更改为:
* * * * * DISPLAY=:0 XAUTHORITY=~me/.Xauthority xdotool...
Run Code Online (Sandbox Code Playgroud)
如果其他用户是 root,则不需要该setfacl
步骤,但我不会运行 xdotool as root
,没有理由这样做。您可以以您自己的用户身份运行它。
归档时间: |
|
查看次数: |
15843 次 |
最近记录: |