Skrypt dodany do cron nie uruchamia się co wyznaczony okres

0

Dzień dobry.

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

#!/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:

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

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

Linux Mint 20.2

Dzięki
M.

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...

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.

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1