Acho que está mudando HOME=/ para HOME=/home/ad .
Eu tentei configurar a mudança do papel de parede através do cron em /etc/crontab , mas falhei.
DISPLAY env definido diretamente / antes do cmd, mas ainda não está funcionando:
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" trabalhado:
* * * * * root su - ad -c "DISPLAY=:0.0 /usr/bin/awsetbg -a -r /home/ad/img/beauty/"
Agora estou usando o crontab do usuário ( crontab -e ) que funciona bem:
*/10 * * * * DISPLAY=:0.0 /usr/bin/awsetbg -a -r /home/ad/img/beauty/
O que mais eu tenho que definir?
cron's 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
Usando vixie-cron 4.1-r1 no Gentoo.
Esqueci completamente que awsetbg é apenas script de shell que usa a variável $HOME .
awsetbg - awesome wrapper tool to set background
Portanto, HOME precisa ser definido.
* * * * * ad DISPLAY=:0,HOME=/home/ad /usr/bin/awsetbg -a -r /home/ad/img/beauty/
Se você usar diretamente algum aplicativo, funcionará apenas com DISPLAY env:
* * * * * ad DISPLAY=:0 feh --bg-max --randomize /home/ad/img/beauty/