Komm in unsere Facebook Gruppe

Willkommen Gast
Du bist nicht angemeldet, um alle Funktionen des Forums zu nutzen musst du dich registrieren und anmelden. Die Registrierung ist natürlich völlig kostenlos und kann jeder Zeit wiederrufen werden.

Aktuelle Zeit: 25. Mai 2012 04:52

Probleme mit Startscript!

Das Forum zum HL Server und seinen Mods wie Counter Strike.


Probleme mit Startscript!

Beitragvon Rept!le am 28. Apr 2007 10:56

Hallo,
ich hoffe ihr könnt mir weiter helfen.
Habe mir da so ein schnukliges script aus dem inet gezogen und an meinen Gameserver angepasst:
#! /bin/sh

NAME=srcds1
DESC="srcds1"
PARAMS="-console -game cstrike +map de_dust2 +maxplayers 10 -port 27015 -tickrate 100 +fps_max 600 -autoupdate
DIR=/home/user/srcds1/
SCRIPT=srcds_run

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 -- $DESC -- finden"
fi
;;

restart)
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 ... Restart wird ausgeführt"
else
echo "Konnte keinen laufenden -- $DESC -- finden ... Kommando Start wird ausgeführt"
fi

sleep 2
echo -n "Starte $DESC: $NAME"
cd $DIR
screen -d -m -S $NAME $DAEMON $PARAMS
echo " ... Server gestartet."
;;

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

exit 0


Das Script liegt direkt im Verzeichnis des Users:

/home/user/srcds1.sh

die zu ausführende srcds_run liegt hier:

/home/user/srcds1/srcds_run

Rechte habe ich vorsichtshalber gleich mal 777 gesetzt und wenn ich nun ./srcds1.sh ausführe, erhalte ich nur folgende Fehlermeldung:

: bad interpreter: Datei oder Verzeichnis nicht gefunden


vielen dank für eure hilfe
mfg.
Rept!le
Mitglied
Mitglied
 
Beiträge: 74
Registriert: 1. Feb 2006 17:50
Wohnort: Augsburg

Beitragvon MikeRivle am 28. Apr 2007 11:30

verzeichnis falsch ??
wenn nicht probier mal meins aus, hab deine sachen schon rein
wie gewohnt chmod und starten mit name.sh start u.s.w.

EDIT: ach ja mir ist aufgefallen du hast bei PARAMS= am schluss kein "

#! /bin/sh
NAME=srcds1
DESC="srcds_1"
PARAMS="-game cstrike +map de_dust2 +maxplayers 10 -port 27015 -tickrate 100 +fps_max 600 -autoupdate"
DIR=/home/user/srcds1/
SCRIPT=srcds_run

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 -- $DESC -- nicht finden"
fi
;;

restart)
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 ... Kommando Start wird ausgeführt"
else
echo "Konnte keinen laufenden Server mit PID -- $DESC -- nicht finden ... Kommando Start wird ausgeführt"
fi

echo -n "Starte $DESC: $NAME"
cd $DIR
screen -d -m -S $NAME $DAEMON $PARAMS
echo " ... Server gestartet."
;;

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

exit 0
Benutzeravatar
MikeRivle
Mitglied
Mitglied
 
Beiträge: 336
Registriert: 30. Jul 2005 11:44
Wohnort: Bayern

Beitragvon Rept!le am 28. Apr 2007 12:02

ne sry,
hab jetzt deins genommen
chmod +x srcds1.sh
./srcds1.sh

: bad interpreter: Datei oder Verzeichnis nicht gefunden


Ich versteh das nicht,
vllt muss ich es in ein anderes Verzeichnis schieben
aber das wollt ich eigentlich nicht.
Wenn ich mich mit meinem user einlogge
befinde ich mich automatisch im /home/user/ verzeichnis,
darin liegt das sh script,
von da aus ich es gerne steuern möchte
damit ich nicht ständig in die ganzen anderen Verzeichnisse wechseln muss!
Rept!le
Mitglied
Mitglied
 
Beiträge: 74
Registriert: 1. Feb 2006 17:50
Wohnort: Augsburg

Beitragvon christian syn. am 28. Apr 2007 13:42

Code: Alles auswählen
   : bad interpreter: Datei oder Verzeichnis nicht gefunden


ändere die oberste Zeile mal in

#!/bin/bash um

die zweite Sache wäre das es noch in Windows Code geschrieben ist, dann convertier das mal um mit dos2unix.
Benutzeravatar
christian syn.
Anbieter
Anbieter
 
Beiträge: 33
Registriert: 21. Apr 2007 11:10
Wohnort: Dormtund

Beitragvon » blade am 28. Apr 2007 13:55

ändere auch mal aus testzwecken folgendes

DAEMON=$DIR/$SCRIPT
in
DAEMON=$DIR/srcds_run

bin mir nicht sicher, aber hatte mal nen ähnliches problem... lag daran das ich in einer variable 2 variblen angegeben hab, so wie du... glaub das geht so nicht...
Benutzeravatar
» blade
Anbieter
Anbieter
[ Anbieter Profil ]
 
Beiträge: 949
Registriert: 18. Aug 2005 10:38
Wohnort: Neuwied

Beitragvon Rept!le am 28. Apr 2007 16:28

ich dank euch mal.

Also

#! /bin/sh in #! /bin/bash abgeändert, die Datei mit dos2unix umwandeln, schreibt er mir zuviele parameter und zu guter letzt DAEMON=$DIR/$SCRIPT in DAEMON=$DIR/srcds_run abgeändert, leider hat sich nichts getan und ich steh noch immer vor dem selben Problem.

Mir ist allerdings Aufgefallen das wenn ich mit chmod +x die Rechte setzten möchte, passiert ebenfalls nichts, kann der Datei nur direkt mit rechts klick die Properties setzten.
Rept!le
Mitglied
Mitglied
 
Beiträge: 74
Registriert: 1. Feb 2006 17:50
Wohnort: Augsburg

hm...

Beitragvon Hitman am 29. Apr 2007 13:23

Hallo zusammen,

Also gleich zum Problem. Der Startscript:
Code: Alles auswählen
#! /bin/sh // <-- das ist unwichtig !
clear

NAME=srcds1
DESC=srcds_1
PARAMS="-game cstrike +map de_dust2 +maxplayers 10 -port 27015 -tickrate 100 +fps_max 600 -autoupdate"
DIR="/home/user/srcds1"
SCRIPT=srcds_run 

case "$1" in
start)
echo "Starte $DESC: $NAME"
cd $DIR
screen -d -m -S $NAME ./$SCRIPT $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 -- $DESC -- nicht finden"
fi
;;

restart)
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 ... Kommando Start wird ausgeführt"
else
echo "Konnte keinen laufenden Server mit PID -- $DESC -- nicht finden ... Kommando Start wird ausgeführt"
fi

echo -n "Starte $DESC: $NAME"
cd $DIR
screen -d -m -S $NAME ./$SCRIPT $PARAMS
echo " ... Server gestartet."
;;

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

exit 0

So das erstmal dazu. Dann der benannte Befehl ist eigendlich:
Code: Alles auswählen
chmod u+x /zum/verzeichnis/srcds1.sh

ODER :
Du gibst einfach zum starten das ein :
Code: Alles auswählen
sh /zum/verzeichnis/srcds1.sh

Funktioniert auch !

am besten gehst du in das Verzeichnis und führst dann aus. dann gibst weniger Probleme:
Code: Alles auswählen
cd /home/user/

./srcds1.sh   
[b]ODER:[/b]
sh srcds1.sh


Was dann passiert kannst du nicht mehr sehen, weil es halt in einem Screen abläuft. Diesen kannst du aber im sogenannten 'TOUCH'-Mode anschauen - mit:
Code: Alles auswählen
screen -r

Wenn du dort drin bist (Mit Putty geh ich nun immer von aus) kannst du noch 'RE-TOUCH'en mit der Tastenkombination "STRG" + "A" + "S"

So das war es erstmal von mir. Wenn noch Probleme da sind, einfach schreiben.
Zuletzt geändert von Hitman am 29. Apr 2007 18:32, insgesamt 1-mal geändert.
Benutzeravatar
Hitman
Moderator
Moderator
 
Beiträge: 164
Registriert: 17. Mai 2005 18:30
Wohnort: Emden

Beitragvon Rept!le am 29. Apr 2007 15:11

sry aber das macht keinen sinn!

So das erstmal dazu. Dann der benannte Befehl ist eigendlich:

Code:
chmod u+x /zum/verzeichnis/srcds_run


Ich muss doch nicht der srcds_run die rechte geben sondern der srcds1.sh.

Dann wenn ich mich mit meinem User eingeloggt habe, befinde ich mich bereits im /home/user Verzeichnis, indem auch das Script liegt.

Für meinen User nutze ich ssh, den ich logischerweiße erstmal mit putty angelegt habe.
Rept!le
Mitglied
Mitglied
 
Beiträge: 74
Registriert: 1. Feb 2006 17:50
Wohnort: Augsburg

Ja oder...

Beitragvon Hitman am 29. Apr 2007 18:29

Oh sorry...

War ein Schreibfehler muss natürlich heissen:
Code: Alles auswählen
chmod u+x /zum/verzeichnis/srcds1.sh


Ich gehe davon aus dass du Putty benutzt <--- sag ich ja.

also probier des damit noch mal.

Und nimm unbedingt den Script den ich gepostet habe, den habe ich auch ausprobiert.

MfG Hitman
Benutzeravatar
Hitman
Moderator
Moderator
 
Beiträge: 164
Registriert: 17. Mai 2005 18:30
Wohnort: Emden

Beitragvon Rept!le am 4. Mai 2007 18:45

so ich habe nun dein script verwendet,
chmod u+x srcds1.sh ausgeführt,
mit putty sowie mit ssh versucht und leider
steh ich immer noch vor dem selben problem.

: bad interpreter: Datei oder Verzeichnis nicht gefunden
Rept!le
Mitglied
Mitglied
 
Beiträge: 74
Registriert: 1. Feb 2006 17:50
Wohnort: Augsburg

Beitragvon Rept!le am 5. Mai 2007 15:08

hallo leute,
seltsamerweiße hat sich heute was getan, wie auch immer das ging!

: command not foundclear
: command not found
: command not found
: command not found
'rcds1.sh: line 10: syntax error near unexpected token `in
'rcds1.sh: line 10: `case "$1" in


Seit heute erhalte ich diese Fehlermeldung, könnt ihr mir sagen was das zu bedeuten hat?

vielen dank
Rept!le
Mitglied
Mitglied
 
Beiträge: 74
Registriert: 1. Feb 2006 17:50
Wohnort: Augsburg

joa,

Beitragvon Hitman am 6. Mai 2007 10:21

Dann hab ich noch einen Script von meinem Webinterface.
Denn kannste auch noch ausprobieren. Dieser hier muss aber direkt im Spielverzeichnis, liegen. Dort wird er ausgeführt !

Code: Alles auswählen
clear

ID=5
DIR="home/user/srcds1";
SLOT=26
NAME=srcds1
DAEMON=srcds_run
DESC="CS:S Server";
PRAMS="-game cstrike +map de_dust2 +maxplayers 10 -port 27015 -tickrate 100 +fps_max 600 -autoupdate";


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

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

 restart)
   if [[ `screen -ls |grep $ID` ]]
   then
       echo -n "Stoppe $DESC: $NAME"
       kill `screen -ls |grep $ID |awk -F . '{print $1}'|awk '{print $1}'`
       echo " ... fertig."
   else
       echo "Kann laufenden Server-Prozess: $DESC nicht finden."
   fi

   echo -n "Starte $DESC: $NAME"
   screen -d -m -S $ID ./$DAEMON $PARAMS
   echo " ... fertig."
   ;;

 *)
   echo "Zugelassene Befehle: $0 {start|stop|restart}"
   exit 1
   ;;
esac

exit 0


Also, auf ein neues.

MfG Hitman
Benutzeravatar
Hitman
Moderator
Moderator
 
Beiträge: 164
Registriert: 17. Mai 2005 18:30
Wohnort: Emden

Beitragvon Rept!le am 11. Mai 2007 16:02

Hallo Hitman,

das will und will einfach nicht!

Ich habe mir nun ein eigenes geschrieben, nicht grad dolle aber funktioniert:

Code: Alles auswählen
#!/bin/sh
clear

echo "Stopping CS:Source Server"
sleep 1
killall srcds_run
echo "Starting CS:Source Server"
sleep 1
cd srcds1
screen -A -m -d -S srcds1 ./srcds_run -console -game cstrike +map de_dust2 +maxplayers 10 -port 27015 -tickrate 100 +fps_max 600 -autoupdate


Ich habe es mit vi geschrieben und ausführen kann ich es nur mit
sh dateiname
Nachteil es stoppt alle Server die mit srcds_run gestartet wurden, da ich aber derzeit nur diesen einen Server darauf laufen hab, spielt das keine rolle.
Weitere Server schreib ich halt dann auch noch da mit rein.

Ich hab jetzt noch eine Frage!
Ich möchte auch das die/der Gameserver sowie TS nach einem Reboot automatisch gestartet werden, habe da etwas über /etc/init.d usw. gelesen, ganz aber habe ich das nicht verstanden?
Rept!le
Mitglied
Mitglied
 
Beiträge: 74
Registriert: 1. Feb 2006 17:50
Wohnort: Augsburg

hm...

Beitragvon Hitman am 14. Mai 2007 16:53

Hi

Also du nimmst dir eine leere Datei, kopierst den Startbefehl hinein, ohne Echo. Dann schiebst du diesen Script in den Ordner '/etc/init.d/' .
Dort musst du noch
Code: Alles auswählen
chmod u+x (Datei)

angeben. Und auch noch diese Datei, dem jeweiligen User übergeben.
Unter diesem wird das ganze dann beim Boot ausgeführt.

Und zu deinem anderen Problem, gebe doch bitte mal
den Befehl
Code: Alles auswählen
chmod u+x start.sh <--(startscript)

ein und du wirst sehen die Datei lässt sich ausführen ! Ganz sicher !
dann nämlich mit
Code: Alles auswählen
 ./start.sh

Das hat nichts mir Benutzerrechten zutun.
Wenn das klappt wird in Putty die Datei in grün aufgelistet.

Probier es...

MfG Hitman
Benutzeravatar
Hitman
Moderator
Moderator
 
Beiträge: 164
Registriert: 17. Mai 2005 18:30
Wohnort: Emden


Zurück zu Half-Life / Counterstrike




Ähnliche Beiträge

Probleme beim Gameserverstart
Forum: Jedi-Knight
Autor: Suiheisen
Antworten: 5
Probleme mit Playlist für Webstream's
Forum: Voiceserver / Webradio
Autor: D42C-Radio
Antworten: 0
Probleme auf Server zukommen.
Forum: Counter Strike Source
Autor: krolf
Antworten: 0
Master Server probleme :D
Forum: Jedi-Knight
Autor: Sethi123
Antworten: 2
Probleme mit Download von Custom Files
Forum: Counter Strike Source
Autor: kcajreven
Antworten: 3