Script: start muziek vanuit cronjob
Geplaatst: Zo 13 Jun 2021, 21:08
Als je vanuit een cronjob een scherm applicatie wil starten is het niet genoeg om alleen de naam van het programma te geven. De cronjob weet niets van de display manager en je moet daarom aangeven waar het programma moet worden gestart. Dat doe je door het display te specificeren aan het begin van de opdracht:
DISPLAY=:0
Als je elke ochtend om half acht je computer een muzieklijst wil laten afspelen kun je in je lokale crontab de volgende regel opnemen
30 7 * * * /home/mogenblue/Muziek/cronjob-muziek.sh
In het script cronjob-muziek.sh zet je dan bijvoorbeeld de volgende code:
Voor mogenblue moet je natuurlijk je eigen username gebruiken. En in plaats van wakker-worden.m3u gebruik je je eigen afspeellijst.
Let er wel op dat je het volledige pad opneemt naar de afspeellijst anders kan de media speler het bestand niet vinden.
Meestal is de displayid 0 maar het kan ook wel eens anders zijn. Je kunt je eigen display controleren in een terminal met
echo $DISPLAY
Als het afspelen voltooid is blijft de speler gewoon open staan op het scherm.
Referenties:
How to start a GUI application from cron?
DISPLAY=:0
Als je elke ochtend om half acht je computer een muzieklijst wil laten afspelen kun je in je lokale crontab de volgende regel opnemen
30 7 * * * /home/mogenblue/Muziek/cronjob-muziek.sh
In het script cronjob-muziek.sh zet je dan bijvoorbeeld de volgende code:
Code: Selecteer alles
#!/bin/bash
# automatisch muziek afspelen vanuit een cronjob
# in crontab:
# 30 7 * * * /home/mogenblue/Muziek/cronjob-muziek.sh
Afspeellijst="/home/mogenblue/Muziek/wakker-worden.m3u"
# check display ID met
# echo $DISPLAY
#------------------------------------------------------------------------
echo .
echo .
echo .
echo .
# specificeer de display als het script vanuit een cronjob wordt gestart
DISPLAY=:0 smplayer "$Afspeellijst"
echo .
echo klaar.
Voor mogenblue moet je natuurlijk je eigen username gebruiken. En in plaats van wakker-worden.m3u gebruik je je eigen afspeellijst.
Let er wel op dat je het volledige pad opneemt naar de afspeellijst anders kan de media speler het bestand niet vinden.
Meestal is de displayid 0 maar het kan ook wel eens anders zijn. Je kunt je eigen display controleren in een terminal met
echo $DISPLAY
Als het afspelen voltooid is blijft de speler gewoon open staan op het scherm.
Referenties:
How to start a GUI application from cron?