prophecY.eXe][*GeNer@L
Hallo Jungs,
erstmalein dickes Lob von mir bezüglich CoD2 Tutorial Linux. Macht weiter so.
Nun zu meinem Problem: Ich habe einen Linux Root Server auf dem ich mit Webmin arbeite. Mit Webmin starten und stoppen wir auch per Startscript unsere Server.
Als erstes habe ich einen Benutzer (usr_cod2) angelegt der auf die Server zugreifen kann da man die Server ja nicht als Root starten soll.
der CoD2 Server läuft in dem Verzeichniss: home/gameserver/cod2
Nun habe ich mir ein Startscript von euch erstellt. Diese Datei heisst cod2.sh und sieht wie folgt aus:
#! /bin/sh
#########################################################
# STARTSCRIPT FÜR EINEN Call of Duty 2 SERVER #
#########################################################
# Benutzung auf eigene Gefahr!!!!!!!!!!! #
# SCREEN muss auf dem Server installiert sein! #
#########################################################
# Vars: #
# G_USER Username #
# NAME Screen-Name #
# DESC Server-Beschreibung #
# PARAMS Start-Parameter #
# DIR HLDS Directory (absolut) #
# SCRIPT Serverstart-Script #
# DAEMON Daemon #
#########################################################
# OPTIONS: (start|stop|restart|status) #
#########################################################
################## User ################################
# Username unter dem der Server laufen soll
# NICHT als root laufen lassen
G_USER=usr_cod2
################## Vars #################################
# Screen NAME
# Attach Screen : # screen -r NAME
# Detach Screen : # [CTRL]+[A]; [D]
# Don't press [CTRL]+[C] it will terminate screen
NAME=screen -r cod2
################## Server Description ###################
# Single Word DESC=myserver
# Multiple Words DESC="This is my Server"
DESC="Prophecy-Gaming CoD2 Server"
################## Parameter ############################
# CAN USE: +servercfgfile server.cfg OR +exec server.cfg
PARAMS="./cod2_lnxded +set dedicated 2 +set net_port 29500 +exec server.cfg"
################## Directory ############################
# Pfad zum cod2-Directory (absolute)
DIR=/home/gameserver/cod2
################## DAEMON ##############################
# Hier das Startscript platzieren, normalerweise hlds_run
SCRIPT=cod2_lnxded
########################################################
#### NICHTS UNTER DIESER ZEILE VERÄNDERN ! ! ! ####
########################################################
DAEMON=$DIR/$SCRIPT
case "$1" in
start)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo "$DESC läuft bereits!"
else
echo "Starte $DESC "
su $G_USER -c "cd $DIR; screen -d -m -S $NAME $DAEMON $PARAMS"
fi
;;
stop)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo -n "Stoppe $DESC "
kill `ps aux | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... done."
else
echo "Kein laufenden $DESC gefunden!"
fi
;;
restart)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo -n "Stoppe $DESC "
kill `ps aux | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... done."
else
echo "Kein laufenden $DESC gefunden!"
fi
echo -n "Starte $DESC"
su $G_USER -c "cd $DIR; screen -d -m -S $NAME $DAEMON $PARAMS"
echo " ... done."
;;
status)
ps aux | grep -v grep | grep cod > /dev/null
CHECK=$?
[ $CHECK -eq 0 ] && echo "$DESC ist online" || echo "$DESC ist offline"
;;
*)
echo "Benutze: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0
Nur leider kommt immer beim Start vom CoD2 die Fehlermeldung:
Ausgabe von cd /home/serverstart/cod2 ; ./cod2.sh start ..
/bin/sh: ./cod2.sh: /bin/sh
: bad interpreter: No such file or directory
Weiss jemand zufällig wo der fehler liegt?
Würde mich echt freuen auf Antwort
--- edited by yoda: Thema angepasst ---
erstmalein dickes Lob von mir bezüglich CoD2 Tutorial Linux. Macht weiter so.
Nun zu meinem Problem: Ich habe einen Linux Root Server auf dem ich mit Webmin arbeite. Mit Webmin starten und stoppen wir auch per Startscript unsere Server.
Als erstes habe ich einen Benutzer (usr_cod2) angelegt der auf die Server zugreifen kann da man die Server ja nicht als Root starten soll.
der CoD2 Server läuft in dem Verzeichniss: home/gameserver/cod2
Nun habe ich mir ein Startscript von euch erstellt. Diese Datei heisst cod2.sh und sieht wie folgt aus:
#! /bin/sh
#########################################################
# STARTSCRIPT FÜR EINEN Call of Duty 2 SERVER #
#########################################################
# Benutzung auf eigene Gefahr!!!!!!!!!!! #
# SCREEN muss auf dem Server installiert sein! #
#########################################################
# Vars: #
# G_USER Username #
# NAME Screen-Name #
# DESC Server-Beschreibung #
# PARAMS Start-Parameter #
# DIR HLDS Directory (absolut) #
# SCRIPT Serverstart-Script #
# DAEMON Daemon #
#########################################################
# OPTIONS: (start|stop|restart|status) #
#########################################################
################## User ################################
# Username unter dem der Server laufen soll
# NICHT als root laufen lassen
G_USER=usr_cod2
################## Vars #################################
# Screen NAME
# Attach Screen : # screen -r NAME
# Detach Screen : # [CTRL]+[A]; [D]
# Don't press [CTRL]+[C] it will terminate screen
NAME=screen -r cod2
################## Server Description ###################
# Single Word DESC=myserver
# Multiple Words DESC="This is my Server"
DESC="Prophecy-Gaming CoD2 Server"
################## Parameter ############################
# CAN USE: +servercfgfile server.cfg OR +exec server.cfg
PARAMS="./cod2_lnxded +set dedicated 2 +set net_port 29500 +exec server.cfg"
################## Directory ############################
# Pfad zum cod2-Directory (absolute)
DIR=/home/gameserver/cod2
################## DAEMON ##############################
# Hier das Startscript platzieren, normalerweise hlds_run
SCRIPT=cod2_lnxded
########################################################
#### NICHTS UNTER DIESER ZEILE VERÄNDERN ! ! ! ####
########################################################
DAEMON=$DIR/$SCRIPT
case "$1" in
start)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo "$DESC läuft bereits!"
else
echo "Starte $DESC "
su $G_USER -c "cd $DIR; screen -d -m -S $NAME $DAEMON $PARAMS"
fi
;;
stop)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo -n "Stoppe $DESC "
kill `ps aux | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... done."
else
echo "Kein laufenden $DESC gefunden!"
fi
;;
restart)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo -n "Stoppe $DESC "
kill `ps aux | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... done."
else
echo "Kein laufenden $DESC gefunden!"
fi
echo -n "Starte $DESC"
su $G_USER -c "cd $DIR; screen -d -m -S $NAME $DAEMON $PARAMS"
echo " ... done."
;;
status)
ps aux | grep -v grep | grep cod > /dev/null
CHECK=$?
[ $CHECK -eq 0 ] && echo "$DESC ist online" || echo "$DESC ist offline"
;;
*)
echo "Benutze: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0
Nur leider kommt immer beim Start vom CoD2 die Fehlermeldung:
Ausgabe von cd /home/serverstart/cod2 ; ./cod2.sh start ..
/bin/sh: ./cod2.sh: /bin/sh
: bad interpreter: No such file or directory
Weiss jemand zufällig wo der fehler liegt?
Würde mich echt freuen auf Antwort
--- edited by yoda: Thema angepasst ---