Raczej Cron działa poprawnie.
1. Problem może leżeć w budowie samego systemu i tego co masz w skrypcie.
Jeśli posiadasz " Systemd " w swojej dystrybucji Linuxa usługi takie jak Cron uruchamiają się raczej losowo, albo prawie losowo.
To oznacza że Cron może wystartować wcześniej niż zalogujesz się do środowiska graficznego.
W tym przypadku jeśli twój skrypt ma wyświetlić powiadomienie, to nie wyskoczy,
bo jeszcze nie zdążyłeś się zalogować, a skrypt już został już wykonany.
- Wiec obstawiałbym że to jest twój problem jeśli występuje losowo. ( i tylko przy starcie systemu )
Żeby opóźnić wykonanie skryptu ja używam komendy " sleep "
Przykład
@reboot sleep 10 && export DISPLAY=:0.0 && bash /home/user/skrypt
2. Uprawnienia.
Cron sam w sobie nie wie komu, nie wie na które " okno " wysłać powiadomienie graficzne (
https://www.linuxquestions.org/questions/linux-newbie-8/export-display%3D-0-0-a-682926/ )
oraz w zależności od dystrybucji Linuxa może mieć odebrane odpowiednie uprawnienia.
( Polecenie Cron z konta root i z konta użytkownika może działać odrobine inaczej - nie sprawdzałem )
Przykład jak poradzić sobie z powiadomieniem " notify-send " na Mincie / Ubuntu
( nazwę " użytkownik " należy sobie podmieć na własnego )
* * * * * export DISPLAY=:0.0 && export XAUTHORITY=/home/UZYTKOWNIK/.Xauthority && sudo -u UZYTKOWNIK /usr/bin/notify-send -u normal -i "info" 'Szefie !!' 'To jest test z Cron-u.'
EdytowanePrzetestuj jeszcze coś takiego, powinno błąd zapisać do pliku /home/user/Skryptu.log
Wtedy będziesz dokładnie wiedział co go boli.
*/4 * * * * /home/user/bin/skrypt.bash.sh &> /home/user/Skryptu.log