Mudando o papel de parede do usuário via crontab do sistema

2

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.

    
por A.D. 05.12.2014 / 23:47

2 respostas

1

Acho que está mudando HOME=/ para HOME=/home/ad .

    
por 06.12.2014 / 05:19
1

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/
    
por 06.12.2014 / 19:57