Das Script
- Code: Alles auswählen
#!/bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin
# Hier anpassen
#
DIR=/pfad/zum/server # Der Pfad zum Server
DAEMON=serverdatei # Datei die den Server startet
NAME=servername # Beliebiger Name für den Server
PARAMS="-game cstrike" # Parameter mit den der Server gestartet werden soll
DESC="Counter Strike Gameserver" # Beschreibung des Gameservers
#
# Ab hier nichts mehr ändern
case "$1" in
start)
echo "Starting: $NAME"
if [ -e $DIR ];
then
cd $DIR
screen -d -m -S $NAME ./$DAEMON
else echo "No such directory: $DIR!"
fi
;;
stop)
if [[ `screen -ls |grep $NAME` ]]
then
echo -n "Stopping: $NAME"
kill `screen -ls |grep $NAME |awk -F . '{print $1}'|awk '{print $1}'`
echo " ... done."
else
echo "Coulnd't find a running $DESC"
fi
;;
restart)
if [[ `screen -ls |grep $NAME` ]]
then
echo -n "Stopping: $NAME"
kill `screen -ls |grep $NAME |awk -F . '{print $1}'|awk '{print $1}'`
echo " ... done."
else
echo "Coulnd't find a running $DESC"
fi
echo -n "Starting: $NAME"
cd $DIR
screen -m -d -S $NAME ./$DAEMON $PARAMS
echo " ... done."
;;
status)
screen -ls | grep -wq "$NAME" && echo "$NAME is UP" || echo "$NAME is DOWN"
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
exit 0
Speichert das Script nachdem ihr es angepasst habt unter einem beliebigen Namen ab.
Script anpassen
Das Script sollte eigentlich für jeden Gameserver oder allgemain für jedes Programm das über die Shell gestartet wird funktionieren, man muss nur ganz oben ein paar Kleinichkeiten anpassen.DIR=/pfad/zum/server
Hier muss der komplette Pfad zum Server angegeben werden
DAEMON=serveradtei
Hier muss die Datei die den Server startet angegeben werden
NAME=servername
Hier kann man dem Server einen beliebigen Namen geben der nur für die Ausgabe des Scripts benutzt wird
DESC=beschreibung
Hier kann derr Server oder Dienst eine Beschreibung erhalten
Script benutzen
Das Script lässt sich ganz einfach über Parameter steuernscript.sh start
Startet den Server
script.sh stop
Stoppt den Server
script.sh restart
Stoppt den Server und startet ihn danach gleich wieder neu
script.sh status
Gibt aus ob der Server läuft oder nicht
Bemerkungen
Wenn der Server nicht über das Script gestartet wurde funktioniert das prüfen des Status nicht und es wird immer ausgegeben das der Server nicht läuft.Das Script startet den Server in einem screen, weitere Informationen zu screen gibt es in artikel/gnu-screen.html
Speichere das Script unter Windows nur mit einem Editor der Unix Zeilenumbrüche unterstützt, z.B. Notepad++
