Startscript Problem (Startscript für Linux-Server)

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 ---
Nighthawk
Nach der Fehlermeldung zu urteilen, findet er etwas nicht. Hat dein Script auch die passenden Rechte ??? Und der Pfad zum Gameserver-Ordner stimmt auch ??
prophecY.eXe][*GeNer@L
Ja das script hat alle rechte die es brauch.

ist denn von der script einstellung soweit alles in Ordnung? oder habe ich da was falsches eingestellt?

Dem Benutzer hatte ich die Shell bin/bash gegeben. Kann es sein das die Shell bin/sh passender wäre?
DJKnuffel
ja, versuchen kannst du es

zudem ist in dieser zeile hier:

Zitat:

NAME=screen -r cod2


das "screen -r" überflüssig, denn das script is ja dazu da das ganze einfacher zu halten, in den screenprozess musst du nicht mehr reingehen..sinnvoll ist das auf diese art nur, wenn man per konsole (putty in etwa) den server starten will

änder des ab das nur noch "cod2" da steht und versuch dem user mal die "bin/sh" zu geben..