通过系统 crontab 更改用户的壁纸

通过系统 crontab 更改用户的壁纸

我尝试通过 cron 中的 cron 设置壁纸更改/etc/crontab,但失败了。

直接/在 cmd 之前设置 DISPLAY env,但仍然不起作用:

DISPLAY=:0.0
* * * * * ad   env DISPLAY=:0.0 /usr/bin/awsetbg -a -r /home/ad/img/beauty/
* * * * * ad   DISPLAY=:0.0 /usr/bin/awsetbg -a -r /home/ad/img/beauty/
* * * * * ad   export DISPLAY=:0.0; /usr/bin/awsetbg -a -r /home/ad/img/beauty/

su - user -c "cmd"工作:

* * * * * root su - ad -c "DISPLAY=:0.0 /usr/bin/awsetbg -a -r /home/ad/img/beauty/"

现在我使用用户的 crontab ( crontab -e) 工作正常:

*/10 * * * * DISPLAY=:0.0 /usr/bin/awsetbg -a -r /home/ad/img/beauty/

我还需要设置什么吗?

克朗的env

MAILTO=root
SHELL=/bin/bash
USER=ad
PATH=/sbin:/bin:/usr/sbin:/usr/bin
PWD=/
SHLVL=1
HOME=/
LOGNAME=ad
DISPLAY=:0.0   # same result for DISPLAY=:0
_=/bin/env

vixie-cron 4.1-r1在 Gentoo 上使用。

答案1

我猜它正在HOME=/改变HOME=/home/ad

答案2

我完全忘记了这awsetbg只是使用$HOME变量的 shell 脚本。

  awsetbg - awesome wrapper tool to set background

所以HOME需要设置。

* * * * * ad   DISPLAY=:0,HOME=/home/ad /usr/bin/awsetbg -a -r /home/ad/img/beauty/

如果您直接使用某个应用程序,它将仅与 DISPLAY env 一起使用:

* * * * * ad   DISPLAY=:0 feh --bg-max --randomize /home/ad/img/beauty/

相关内容