trabalho crontab não está funcionando

2

Backgound

Estou tentando executar um script sh a cada minuto usando o crontab, mas não está funcionando.

Problema

Quando eu executo o script manualmente, ele é executado corretamente, no entanto, o crontab não pode fazê-lo.

Eu criei o trabalho usando crontab -e , e posso ver que o cron está em execução, porque se eu digitar pgrep cron , recebo o PID em retorno.

Eu também sei que o meu formato de hora está correto porque eu testei com este testador on-line .

Código

wallpaperSlider.sh :

#!/bin/bash
feh --randomize --bg-fill /home/username/Pictures/wallpapers/*

trabalho do crontab :

SHELL=/bin/bash

* * * * * username /home/username/.crons/wallpaperSlider.sh

Pesquisa

Eu li os erros mais comuns no AskUbuntu e acho que não estou experimentando nenhum.

Eu entendo que talvez esteja faltando alguma variável de ambiente, mas não tenho certeza de como verificar isso.

Eu também sei que crontab -e altera / cria um arquivo tmp, no meu caso /tmp/crontab.wCajAu/crontab .

Pergunta

  1. Como posso fazer esse script ser executado no cron?
  2. Tendo em conta que crontab -e altera um arquivo na pasta tmp , perderei todas as alterações depois de reiniciar?
por Flame_Phoenix 28.07.2017 / 16:19

1 resposta

3

Seu formato cron está errado. Você quer:

* * * * * /home/username/.crons/wallpaperSlider.sh

Os crontabs do usuário não têm um campo username . Isso é usado apenas para crontabs do sistema como /etc/crontab . Você também não precisa de SHELL=/bin/bash , mesmo que seu shell padrão não seja bash (é dash no Ubuntu), seu próprio script tem a linha shebang ( #!/bin/bash ), então ele será executado por bash não importa o cron shell lançado.

Você provavelmente terá outros problemas também, já que está tentando executar um aplicativo que se comunica com o servidor X a partir do cron. Em caso afirmativo, você precisa usar:

DISPLAY=":0.0"
XAUTHORITY="/home/YOURUSERNAME/.Xauthority"
XDG_RUNTIME_DIR="/run/user/1000"
* * * * * /home/username/.crons/wallpaperSlider.sh
    
por terdon 28.07.2017 / 16:22