Hallo,
leider habe ich schon seit einiger Zeit ein Syntax mit meinem eigenen Start/Stop/Restart-Script für einen Shoutcast-Server.
Hier mal das Script:
Code:
#!/bin/bash
# Startprogramm für den SHOUTCasting-Server
# Copyright by Michael Kaps; www.michis-homepage.net
#################################### KONFIGURATION ########################################
###########################################################################################
## Pfad zur Datei sc_serv des SHOUTCasting-Servers (Dateinamen nicht mehr mit angeben)
path_shoutcast="/home/shoutcast"
###########################################################################################
## Screens zur Überwachung des Servers verwenden (Aufrufbar mit screen -r sc1) ( 0 = Aus / 1 = Ein)
use_screen="1"
###########################################################################################
## Speziellen Benuzter wählen der den SHOUTCasting-Server starten soll (Erhöht die Sicherheit; User muss angelegt sein) ( 0 = Aus / 1 = Ein)
use_user="0"
username="shoutcast"
###########################################################################################
#################################### KONFIGURATION ENDE ###################################
case "${1}" in
start)
## if [ "${start}" != "1" ]; then
if [[ ! -e "${path_shoutcast}/server.pid" ]]; then
# Falls Screen aktiviert
if [ "${use_screen}" == "1" ]; then
if [ "${use_user}" == "1" ]; then
su -c '"${path_shoutcast}/sc_serv"' "${username}"
else
screen -dmS sc1 "${path_shoutcast}/sc_serv"
fi
# Wenn Kommando fehlerfrei, dann PID-File anlegen
if [ "${?}" == "0" ]; then
echo "done"
touch "${path_shoutcast}/server.pid"
else
echo "false"
fi
# Falls Screen nicht aktiviert oder nicht eindeutig
else
if [ "${use_user}" == "1" ]; then
su -c '"${path_shoutcast}/sc_serv"' "${username}"
else
"${path_shoutcast}/sc_serv"
fi
# Wenn Kommando fehlerfrei, dann Variable auf gestartet setzen
if [ "${?}" == "0" ]; then
echo "done"
touch "${path_shoutcast}/server.pid"
else
echo "false"
fi
fi
else
echo "Server scheint bereits online zu sein!"
fi
;;
restart)
##if [ "${start}" == "1" ]; then
if [[ -e "${path_shoutcast}/server.pid" ]]
if [ "${use_screen}" == "1" ]; then
if [ "${use_user}" == "1" ]; then
su -c "killall -9 sc1" "${username}"
su -c 'screen -dmS sc1 "${path_shoutcast}/sc_serv"' "${username}"
else
killall -9 sc1
screen -dmS sc1 "${path_shoutcast}/sc_serv"
fi
if [ "${?}" == "0" ]; then
echo "done"
touch "${path_shoutcast}/server.pid"
else
echo "false"
fi
else
if [ "${use_user}" == "1" ]; then
su -c 'killall -9 "${path_shoutcast}/sc_serv" && "${path_shoutcast}/sc_serv"' "${username}"'
else
killall -9 "${path_shoutcast}/sc_serv" && "${path_shoutcast}/sc_serv"' "${username}"
fi
if [ "${?}" == "0" ]; then
echo "done"
touch "${path_shoutcast}/server.pid"
else
echo "false"
fi
fi
else
echo "Der Server scheint nicht online zu sein, bitte erst starten!"
fi
;;
status)
##if [ "${start}" == "1" ]; then
if [[ -e "${path_shoutcast}/server.pid" ]]
echo "Server scheint online zu sein!"
##elif [ "${start}" == "0" ]; then
elif [[ ! -e "${path_shoutcast}/server.pid" ]]
echo "Server scheint offline zu sein!"
fi
;;
stop)
##if [ "${start}" == "1" ]; then
if [[ -e "${path_shoutcast}/server.pid" ]]
if [ "${use_screen}" == "1" ]; then
if [ "${use_user}" == "1" ]; then
su -c 'killall -9 "sc1" "${username}"'
else
killall -9 sc1
fi
if [ "${?}" == "0" ]; then
echo "done"
rm -f "${path_shoutcast}/server.pid"
else
echo "false"
fi
else
if [ "${use_user}" == "1" ]; then
su -c 'killall -9 "${path_shoutcast}/sc_serv"'
else
killall -9 "${path_shoutcast}/sc_serv"
fi
if [ "${?}" == "0" ]; then
echo "done"
rm -f "${path_shoutcast}/server.pid"
else
echo "false"
fi
fi
##elif [ "${start}" == "0" ]; then
elif [[ ! -e "${path_shoutcast}/server.pid" ]]
echo "Server scheint nicht online zu sein, bitte erst starten!"
fi
;;
*)
echo "Syntax:"
echo "shoutcast (start|stop|status|restart)"
exit 2
;;
esac
Und hier die Fehlermeldung die ich bekomme:
Code:
hxxxxx:~# sh shoutcast_control.sh
: command not foundh: line 4:
: command not foundh: line 18:
'houtcast_control.sh: line 19: syntax error near unexpected token `in
'houtcast_control.sh: line 19: `case "${1}" in
An was könnte das denn liegen?
Ich kann leider einfach kein Syntaxfehler in Zeile 19 finden.
Ebenso seltsam erscheint mir der Fehler in Zeile 4 und 18, worüber er sich über eine leere Zeile beschwert.
MfG
Michael
Lesezeichen