Błąd uruchamiania skryptu z crontab

Napisałem prosty skrypt do regulacji głośności. Po uruchomieniu w terminalu działa jak należy.

#!/bin/bash

amixer scontrols 
amixer sset 'Master' 30%
sleep 10
amixer -q -D pulse sset Master 10%+
sleep 10
amixer -q -D pulse sset Master 10%+
sleep 10
amixer -q -D pulse sset Master 10%+
sleep 10
amixer -q -D pulse sset Master 10%+
sleep 10
amixer -q -D pulse sset Master 10%+
sleep 10
amixer -q -D pulse sset Master 10%+

Przy próbie uruchomienia z crontaba niestety nie działa.

Simple mixer control 'PCM',0
Simple mixer control 'Line',0
Simple mixer control 'Line Boost',0
Simple mixer control 'Mic',0
Simple mixer control 'Mic Boost',0
Simple mixer control 'IEC958',0
Simple mixer control 'IEC958',1
Simple mixer control 'IEC958',2
Simple mixer control 'Beep',0
Simple mixer control 'Capture',0
Simple mixer control 'Auto-Mute Mode',0
Simple mixer control 'Digital',0
Simple mixer control 'Internal Mic Boost',0
Simple mixer control 'Loopback Mixing',0
Simple mixer control 'Master',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 127
  Mono: Playback 38 [30%] [-66.75dB] [on]
ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused

amixer: Mixer attach pulse error: Connection refused

Może ktoś z forumowiczów będzie miał jakiś pomysł jak to ogarnąć.

Komendy w cronie działają bez kontekstu i tych wszystkich zmiennych środowiskowych, które masz zdefiniowane jako normalnie zalogowany user. Arch Wiki sugeruje, że najprawdopodobniej chodzi o XDG_RUNTIME_DIR (zależna od twojego UID, na domyślnym userze będzie miała wartość /run/user/1000). Można ją podać na milion sposobów, od podania przy wywoływaniu w cronie:

* * * * * export XDG_RUNTIME_DIR=/run/user/1000 && /my/precious/script.sh

po zdefiniowanie tegoż eksportu w samym skrypcie.

Bardzo dziękuję. Działa wyśmienicie.