Ein Script nach RESUME ausführen
Mein Hörspielserver ist nur dann an, wenn ich ihn brauche. Sobald keine Musik mehr spielt, fährt die Kiste in Suspend to RAM (STR). Per Wake-On-Lan wecke ich sie bei Bedarf wieder auf.
Leider ist es so, dass nach einem Resume ices2 nicht mehr läuft. Ich benötige also ein Script, welches nach einem Suspend icecast2 und ices2 wieder startet. Da ich das Startscript für icecast2 in /etc/init.d/icecast2
so angepasst habe, dass ices2 immer mitgestartet wird, genügt bei mir nach dem Resume ein
sudo /etc/init.d/icecast2 restart
Der passende Ort für derlei Scripte ist /etc/pm/sleep.d/
. Alle Scripte, die hier drin liegen, werden in alphabetischer Reihenfolge mit root-Rechten ausgeführt. Das Scriptkonstrukt ist dabei folgendes:
#!/bin/bash
case "$1" in
hibernate|suspend)
AKTIONEN, DIE VOR DEM SUSPEND AUSGEFÜHRT WERDEN
;;
thaw|resume)
AKTIONEN, DIE NACH DEM RESUME AUSGEFÜHRT WERDEN
;;
*)
;;
esac
exit $?
Für meinen Hörspielserver erstelle ich also ein ausführbares Script namens “99_restart_icecast2.sh
”:
sudo touch /etc/pm/sleep.d/99_restart_icecast2.sh
sudo chmod+x /etc/pm/sleep.d/99_restart_icecast2.sh
sudo nano /etc/pm/sleep.d/99_restart_icecast2.sh
#!/bin/bash
case "$1" in
thaw|resume)
/etc/init.d/icecast2 restart 2>/dev/null
;;
*)
;;
esac
exit $?
Super Sache, jetzt funktioniert wieder alles wie gewünscht.