COD4-Server-Startscript funzt nur teilweise

Gameserver und Clan-Zubehör
fndark
Posts: 6
Joined: 2009-08-21 07:32

COD4-Server-Startscript funzt nur teilweise

Post by fndark »

Hi,

ich hab ein Startscript für meinen COD4-Server, welchen diesen auch startet, aber nicht stoppt!
Hier mal das komplette Startscript

Code: Select all

#! /bin/sh  
DIR=/home/fndark/SCIFI-X_COD4-Server
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DIR
cd $DIR

#NETZSETTINGS
IP=83.142.84.186
PORT=28001

#Der Screenname
NAME=cod4_scifi-x
DESC="CoD4"
#PARA_UEBERGABE
PARA1="+set fs_basepath $DIR +set fs_homepath $DIR +set fs_game mods/scifi-x "
PARA2="+set loc_language 2 +set dedicated 2 +set net_port $PORT +set sv_ip $IP "
PARA3="+set sv_punkbuster 1 +exec server.cfg +map mp_mtl_the_rock "
PARA4=""
PARAMS=$PARA1" "$PARA2" "$PARA3" "$PARA4
#Binaer_DATEI
SCRIPT=cod4_lnxded

DAEMON=$DIR/$SCRIPT

case "$1" in
start)
   echo "Starte $DESC: $NAME"
   cd $DIR
   screen -d -m -S $NAME $DAEMON $PARAMS
   ;;

stop)
   if [[ `screen -ls |grep $NAME` ]]
   then
       echo -n "Stoppe $DESC: $NAME"
       kill `screen -ls |grep $NAME |awk -F . '{print $1}'|awk '{print $1}'`
       echo " ... Server gestoppt."
   else
       echo "Konnte keinen laufenden Server mit PID -- $NAME -- nicht finden"
   fi
   ;;

restart)
  if [[ `screen -ls |grep $NAME` ]]
  then
      echo -n "<b>Stoppe $DESC: $NAME</b>"
      kill `screen -ls |grep $NAME |awk -F . '{print $1}'|awk '{print $1}'`
      echo " ... Server gestoppt ... Kommando Start wird ausgeführt"
  else
      echo "Konnte keinen laufenden Server mit PID -- $NAME -- finden ... Kommando Start wird ausgeführt.<br><br>"
  fi

  echo -n "<center>Starte $DESC: $NAME </center><br /><br />"
  cd $DIR
  screen -d -m -S $NAME $DAEMON $PARAMS
 
  sleep 1
  
  if [[ `screen -ls |grep $NAME` ]]
  then
    echo "<center> Server gestartet.</center>"
  else
    
    echo -n "<center><b>--- !!Server konnte nicht gestarted werden!! ---</b></center>"
	echo -n "$DAEMON $PARAMS" 

  fi
 ;;

*)
   echo "Usage: $0 Parameter eingeben {start|stop|restart}"
   exit 1 
   ;;
esac

exit 0


Und hier noch die ausgegebene Fehlermeldung

Code: Select all

/home/fndark/SCIFI-X_COD4-Server/start-server.sh: 73: [[: not found
Konnte keinen laufenden Server mit PID -- cod4_f -- nicht finden
Für hilfe wäre ich dankbar weil den immer per Prozesskilling zu stoppen ist auch nicht die feine

Gruss, Dark

User avatar
Joe User
Project Manager
Project Manager
Posts: 11135
Joined: 2003-02-27 01:00
Location: Hamburg

Re: COD4-Server-Startscript funzt nur teilweise

Post by Joe User »

fndark wrote:Und hier noch die ausgegebene Fehlermeldung

Code: Select all

/home/fndark/SCIFI-X_COD4-Server/start-server.sh: 73: [[: not found
Konnte keinen laufenden Server mit PID -- cod4_f -- nicht finden
Was ist an der Fehlermeldung nun missverständlich? Deine Shell kann mit [[ nichts anfangen und sagt Dir das so gar...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

EdRoxter
Posts: 483
Joined: 2006-01-06 03:23
Location: Neben Bonn

Re: COD4-Server-Startscript funzt nur teilweise

Post by EdRoxter »

Die [[..]] Syntax wird bei den gängigen Linux-Distributionen am Ehesten von bash interpretiert. Wenn /bin/sh nicht auf die Bash linkt, könnte das das Problem sein. Also sollte es gehen, wenn du als Shebang in dem Initscript

Code: Select all

#!/bin/bash
setzt.

User avatar
daemotron
Administrator
Administrator
Posts: 2636
Joined: 2004-01-21 17:44

Re: COD4-Server-Startscript funzt nur teilweise

Post by daemotron »

[[ wird nur von Bash und ZSH interpretiert; alle anderen Shells verstehen nur [ oder test.

Ich vermute, Du verwendest Debian oder Ubuntu. Dort ist unter /bin/sh die Debian Almquist Shell (Dash) zu finden, die obige Syntax natürlich nicht versteht. Du kannst also einfach folgendes tun: Wie EdRoxter schon sagte, Shebang ersetzen - und dem Autor des Skripts einen überbraten. Einen IEEE1003.1 Shebang verwenden und sich dann beim programmieren nicht an selbigen Standard halten ist nämlich allergröbstes *Pfui* :twisted:
“Some humans would do anything to see if it was possible to do it. If you put a large switch in some cave somewhere, with a sign on it saying 'End-of-the-World Switch. PLEASE DO NOT TOUCH', the paint wouldn't even have time to dry.” — Terry Pratchett, Thief of Time

fndark
Posts: 6
Joined: 2009-08-21 07:32

Re: COD4-Server-Startscript funzt nur teilweise

Post by fndark »

Hi,

@ Joe

Wo das Problem liegt? Ganz einfach - ich kann zwar an / mit der Bash arbeiten, aber mit Scripting oder in dieser Richtung kenn ich mich nicht aus, leider wie ich manchmal feststellen muss

EdRoxter

Genau das war das Problem! Vielen dank!

jfreund

Richtig vermutet, es ist Ubuntu 9.04 Jaunty. Naja, das Script war vor vor 2 Jahren meine letzte Rettung als es um "Enemy Territory Sedrver" ging und hatte das irgendwo gefunden, dann einfach etwas umgebaut mit viel "Googln" und war froh das es wenigstens das starten übernahm da die ganze Befehlszeile doch heftig lang ist um sich alles zumerken

Vielen dank an euch alle für die schneller hilfe.

Gruss, Sven