Skrypt dodany do cron nie uruchamia się co wyznaczony okres

Skrypt dodany do cron nie uruchamia się co wyznaczony okres
mpaw
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 531
0

Dzień dobry.

Próbuję dodać skrypt do cron tak, by uruchamiał się co 1 minutę. Skrypt wygląda tak:

Kopiuj
#!/bin/bash

var=$( cat /sys/class/power_supply/BAT0/capacity )
if [ $var -lt 31 ]
then
    yad --image "dialog-information" --title "Info" --button=gtk-ok:0 --text "Low battery level (30%)"
else
    if [ $var -gt 64 ]
    then
        yad --image "dialog-information" --title "Info" --button=gtk-ok:0 --text "Hi battery level (65%)"
    fi
fi

yad --image "dialog-information" --title "Info" --button=gtk-ok:0 --text "Test text"

Skrypt uruchamia się kiedy uruchamiam go ręcznie (ma prawa uruchamiania) i działa. Próbowałem dodać do cron w ten sposób:

Kopiuj
$ crontab -e
Kopiuj
* * * * * /home/mpaw/battery.sh
Kopiuj
$ sudo service cron reload

Jednak i tak nie uruchamia się. Co robię źle?

Linux Mint 20.2

Dzięki
M.

99xmarcin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2420
1

Sprawdz uprawnienia, być może user na którym chodzi cron nie ma dostępu do twojego katalogu domowego.
Najlepiej skrypt umiejścić w jakimś /usr/bin i dać rxrxrx...

Dwa - to dodać logowanie do pliku może być echo doing xxx >> /var/script/log.txt, bo być może się na czymś wykłada...

szatkus
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 227
3

yad jest aplikacją graficzną, a cron działa poza tym. Zresztą najlepiej sprawdź w logach crona. Prawdopodobnie zdefiniowanie zmiennej DISPLAY może pomóc.

mpaw
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 531
0

Jak uruchamiam skrypt w konsoli przez ./battery.sh to działa dobrze, okienko się pokazuje. A logi crona są puste od 9 dni (ostatni log 19.10)

wpisałem grep CRON /var/log/syslog

Na sąsiednim forum dali odpowiedź. Trzeba dodać zmienna DISPLAY

* * * * * env DISPLAY=:0.0 /home/mpaw/battery.sh

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.