PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ShoutCast2 - Control-Script


Cerberus
12.03.2016, 11:00
Da leider nix passenden enthalten ist, hab ich rumgesucht und angepasst :)
#!/bin/sh
export TERM=${TERM:-dumb}

clear

#Shoutcast-Script.

#Konfiguration
stamm=$(readlink -f "$0")
pfad="$(dirname "${stamm}")"
cd "${pfad}"
programmpfad="$(pwd)"
programm="sc_serv"
configfile="sc_serv_simple.conf"
pidfile="sc_serv_8000.pid"

#Ausführung mit User root nicht möglich
if [ "${UID}" = "0" ]; then
echo "\033[1;4;5;31mAchtung!\033[1;24;25m Das Script kann nicht mit dem User root ausgeführt werden."
echo "Bitte führe das Script mit dem passenden User aus.\033[0m"
exit 1
fi

case "${1}" in
#Prüft, ob der Server läuft
"status") if [ -f "${pidfile}" ]; then
if ( kill -0 $(cat "${pidfile}") 2> /dev/null ); then
echo "Der Server ist gestartet"
else
echo "Der Server ist nicht gestartet"
fi
else
echo "Der Server ist nicht gestartet"
fi
;;

# Startet den SC-Server
"start") if [ -f "${configfile}" ]; then
break
else
echo "${configfile} konnte nicht gefunden werden, bitte prüfe nochmal das Startscript (Zeile 10) und die Dateien auf dem Server."
exit 1
fi

if [ -e "${pidfile}" ]; then
if ( kill -0 $(cat "${pidfile}") 2> /dev/null ); then
echo "Der Server ist bereits aktiv, bitte starte ihn neu oder stoppe ihn."
exit 1
else
echo "Die Datei ${pidfile} existiert, jedoch konnte der Prozess nicht gefunden werden. Die .pid wird entfernt."
rm "${pidfile}"
fi
fi

echo "Der Shoutcast Server wird gestartet..."

if [ -e "${programm}" ]; then
if [ ! -x "${programm}" ]; then
chmod u+x "${programm}"
fi

if [ -x "${programm}" ]; then
"./${programm}" ${configfile} > /dev/null 2>&1 &
echo $! > "${pidfile}"
echo "Der Shoutcast Server wurde erfolgreich gestartet."
else
echo "\033[31m${programm} ist nicht ausführbar, der Server kann nicht gestartet werden."
echo "Bitte setzen Sie die Schreibrechte mit chmod 755 ${programm} in der Konsole manuell.\033[0m"
fi
else
echo "\033[31m${programm} konnte nicht gefunden werden, bitte geben sie den richtigen Dateinamen in Zeile 9 des Scripts an.\033[0m"
exit 1
fi
;;

#Beginn Stopprozedur
"stop") if [ -e "${pidfile}" ]; then
echo "Der Shoutcast Server wird angehalten."
kill -KILL $(cat "${pidfile}")
rm "${pidfile}"
else
echo "Im Moment ist der Shoutcastserver nicht aktiv."
exit 1
fi
;;

#Neustartoption
"restart") $0 stop && $0 start || exit 1
;;

#Killoption
"kill") killall -9 ${programm}
;;

# Ausgabe bei Fehleingaben
*) echo "\033[4mBitte einen Parameter mit angeben\033[0m"
echo "${0} {status | start | stop | restart }"
exit 1
esac
exit 0