Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Code geschreven dat een geluidje moet afspelen d.m.v. crontab, maar werkt niet.  (gelezen 872 keer)

Offline bart85

  • Lid
In crontab heb ik met de opdracht `crontab -e` heb ik onderstaande regel ingevoerd om een script op te starten dat een geluid afspeeld.
30 10 * * * alarm.sh koffie
Code van alarm.sh:
waarvoor=$(echo $1 | tr a-z A-Z)

. /etc/alarm.conf # instellingen sourcen


case $waarvoor in # file met het af te spelen geluid.
KOFFIE)
file=$sounddir/$koffie
;;
COMPLETE)
file=$sounddir/$complete
;;
*)
exit 1
;;
esac


until [[ $i = $repeat ]] # Afspelen n maal herhalen
do
i=$(( i + 1 ))
ogg123 -d alsa $file # geluid afspelen
sleep 0.5
done

Instellingen worden uit onderstaande configuratiebestand (/etc/alarm.conf) gehaald:
repeat=10
sounddir=/usr/share/sounds/freedesktop/stereo
koffie=bell.oga
complete=complete.oga

Waarom hoor ik geen geluid? Het script alarm.sh staat in /usr/local/bin en heeft dezelfde eigenaar als de gebruiker met execute permissie.
Je leert maar mooi over weg gaan met de commandline. Geen grafische toepassingen voor systeembeheer.
You can never make a system 100% secure unless you unplug the machine from all networks, turn it off, lock it in a safe, smother it in concrete and never use it.

Offline bart85

  • Lid
Het werkt als crontab word gewijzigd:

30 10 * * * /usr/local/bin/alarm.sh koffie
Blijkbaar kent crontab niet de $PATH variabele, waar het script in staat.
Je leert maar mooi over weg gaan met de commandline. Geen grafische toepassingen voor systeembeheer.
You can never make a system 100% secure unless you unplug the machine from all networks, turn it off, lock it in a safe, smother it in concrete and never use it.