SHOUTCast Start-Stop-Restart-Status Script

Bash, Shell, PHP, Python, Perl, CGI
fireball22
Posts: 76
Joined: 2006-04-09 11:13

SHOUTCast Start-Stop-Restart-Status Script

Post by fireball22 » 2006-09-10 11:58

Hallo,

nach meinem einwöchigen Italien-Urlaub hab ich mir die in einem anderen Thread genannten BASH-Syntaxen durchgelesen und jetzt mein erstet BASH-Script geschrieben.

Nur funktioniert es anscheinend noch nicht ganz, wegen irgendeinem Operator-Fehler, aber ich glaube da habe ich so eine komische If-Syntax noch nicht ganz richtig verstanden, aber ich bekomme das einfach nicht hin, keine Ahnung woran es da genau liegt... :confused:

Und ist das Script so OK oder muss man da noch was dran verbessern?

Hier ist es:

Code: Select all

#!/bin/bash
# Startprogramm für den SHOUTCasting-Server

#################################### KONFIGURATION ########################################
###########################################################################################
## Pfad zur Datei sc_serv des SHOUTCasting-Servers (Dateinamen nicht mehr mit angeben)
patch_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="1"
username="shoutcast"
###########################################################################################
#################################### KONFIGURATION ENDE ###################################

if [ $use_user="1" ] ;
	then
	su $username
fi	

case "$1" in

start)
if [ $start = "0" ] ;
	then
	if [ $use_screen = "1" ] ; #Falls Screen aktiviert
		then
		screen -S sc1 && "$patch_shoutcast""/sc_serv"
		if [ $? = "0" ] ; #Wenn Kommando fehlerfrei, dann Variable auf gestartet setzen
			then
			echo "done"
			start = "1"
			export start
			
			else
			echo "false"
		fi
		
		else #Falls Screen nicht aktiviert oder nicht eindeutig
		"$patch_shoutcast""/sc_serv"
		if [ $? = "0" ] ; #Wenn Kommando fehlerfrei, dann Variable auf gestartet setzen
			then
			echo "done"
			start = "1"
			export start
			
			else
			echo "false"
		fi
	fi
		
	else
	echo "Server scheint bereits online zu sein!"
fi;;

restart)
if [ $start = "1" ] ;
	then
	if [ $use_screen = "1" ] ;
		then
		screen -r sc1 && killall -9 "$patch_shoutcast""/sc_serv" && "$patch_shoutcast""/sc_serv"
		if [ $? = "0" ] ;
			then
			echo "done"
			start = "0"
			export start
				
			else
			echo "false"
		fi
		
		else
		killall -9 "$patch_shoutcast""/sc_serv" && "$patch_shoutcast""/sc_serv"
		if [ $? = "0" ] ;
			then
			echo "done"
			start = "0"
			export start
				
			else
			echo "false"
		fi
	fi
	
	else
	echo "Der Server scheint nicht online zu sein, bitte erst starten!"
fi;;

status)
if [ $start = "1" ] ;
	then
	echo "Server scheint online zu sein!"
	
	elif [ $start = "0" ] ;
	then
	echo "Server scheint offline zu sein!"
fi;;

stop)
if [ $start = "1" ] ;
	then
	if [ $use_screen = "1" ] ;
		then
		screen -r sc1 && killall -9 "$patch_shoutcast""/sc_serv"
		if [ $? = "0" ] ;
			then
			echo "done"
			
			else
			echo "false"
		fi	
		
		else
		killall -9 "$patch_shoutcast""/sc_serv"
		if [ $? = "0" ] ;
			then
			echo "done"
			
			else
			echo "false"
		fi
	fi
	
	elif [ $start = "0" ] ;
		then
		echo "Server scheint nicht online zu sein, bitte erst starten!"
fi;;

*)
echo "Syntax: n"
echo "shoutcast (start|stop|status|restart)"
exit 2
;;


esac
Fireball22

EDIT:

Achja, fast hätte ich es vergessen:
Es sind noch einige unmögliche stellen im Script, da ich nicht so richtig weiß wie ich jetzt einen speziellen Code mit einem speziellen User in einem Screen ausführe und diesen dann wieder in den Hintergrund stecke ohne ihn zu schließen!
Wie geht denn das Codemäßig?

kampfdeo
Posts: 3
Joined: 2006-09-30 01:03

Re: SHOUTCast Start-Stop-Restart-Status Script

Post by kampfdeo » 2006-10-02 15:47

kannste bitte das mit dem User rausnehmen es bringt mir nur Probleme

fireball22
Posts: 76
Joined: 2006-04-09 11:13

Re: SHOUTCast Start-Stop-Restart-Status Script

Post by fireball22 » 2008-02-08 00:28

Nach sehr langer Entwicklung ist das Script nun endlich fertig, wenn jemand an einem Start/Stop/Restart/Stop-Force-Script für einen SHOUTcast-Server Interesse hat:

http://www.michis-homepage.net/scripting.php

MfG
Michael