Restart script

Herr_Hackbarrt
hi leude ^^
so ich hab ein prob. restart script is ja kein thema ABER:
im letzter zeit isses häufiger passiert dass sich der cod serevr aufgehängt hat. der .\cod_lnxded prozess lief aber noch dH das script hat nix gemacht da des ja nur schaut ob der prozess noch läuft.
erwarte sehnsüchtig lösungsvorschläge smile
Nighthawk
... Scripttechnisch wird man da nicht viel machen können, da würd ich eher mal den Gameserver debuggen.
Sorry! unglücklich
SoulJah
doch, kann man... wenn du den code in dein restart script reinbastelst:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
timeout=10
output=`echo "ÿÿÿÿgetstatus" | netcat -u -w$timeout localhost <PORT>`
  case `echo $output | grep mapname` in
    "")
      echo "Server hängt!"
      <KILLEN & NEU STARTEN>
    ;;
    *)
      echo "Server läuft noch..."
    ;;
  esac



der timeout gibt an, wie lange das script auf antwort warten soll, falls der server grade eine map lädt oder ähnliches.

Nighthawk
cool, wusste gar nicht das netcat udp kann ... geschockt
RESPEKT!!! Augenzwinkern
Herr_Hackbarrt
dange und feddes lob aba da is immer noch ein problem grosses Grinsen
hab vom scripten sowas von null ahnung und wüsste gerne wie das in der praxis aussieht grosses Grinsen
kanns mir zwar ungefähr denken aba bevor ich da meinen root hochjage... smile
SoulJah
dann poste mal dein restart-script, ich bastel es dir dann rein
Herr_Hackbarrt
sehr aufmerksam Augenzwinkern währ sonst gearscht lol

#!/bin/bash
cd /home/flesh/codserver
while true; do
./cod_lnxded +set net_port 28965 +set net_ip 213.202.216.159 +exec psyserver.cfg +map_rotate
done
SoulJah
so müßte das funzen:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
#!/bin/bash

timeout=10
path="/home/flesh/codserver"
port=28965
ip="213.202.216.159"
cfg="psyserver.cfg"

cd $path
while true; do 
  case `echo "ÿÿÿÿgetstatus" | netcat -u -w$timeout localhost $port | grep mapname` in
    "")
      echo "Server hängt!"
      killproc $path/cod_lnxded
      ./cod_lnxded +set net_port $port +set net_ip $ip +exec $cfg +map_rotate &
    ;;
    *)
      echo "Server läuft noch..."
    ;;
  esac
done

Herr_Hackbarrt
ja danke schon mal aba da gibts ein problem: is wohl recht billig aba ich will da lieber ned dran rumpfuschen. der startet den server zwar aba halt so ca 10 server grosses Grinsen möch aba lieber doch nur 1. so habs ichs im script stehen was is da falsch ?

#!/bin/bash

timeout=10
path="/home/flesh/Jumpserver"
port=9000
ip="213.202.216.159"
cfg="jumpserver.cfg"

cd $path
while true; do
case `echo "ÿÿÿÿgetstatus" | netcat -u -w$timeout localhost $port | grep mapname` in
"")
echo "Server hängt!"
killproc $path/cod_lnxded
./cod_lnxded +set net_port $port +set net_ip $ip +exec $cfg +map_rotate &
;;
*)
echo "Server läuft noch..."
;;
esac
done
DJKnuffel
das script sollte auch für UO funzen und könnte ggf. um das von dir gewünschte erweitert werden

https://www.opferlamm-clan.de/?menu=234
Herr_Hackbarrt
und was is an meinem script falsch ? timeout vll zu niedrig ?
Herr_Hackbarrt
hilfe hilft mir doch mal wer smile wo ist souljah Uuups
SoulJah
sorry... aber seit das rss-feed nicht mehr funzt, schau ich nicht mehr ganz so oft vorbei.
ich fürchte, der fehler liegt bei mir... ich hätte das script mal testen sollen. ;)
die schleife wird vielleicht ein wenig zu oft durchlaufen... da fehlt ein delay.
und der server bekommt etwas zeit zum starten, das ist wohl das hauptproblem.
wäre der timeout zu niedrig, würde er den server nur ständig wieder killen. der wert sollte etwas größer sein, als der server für einen map-rotate brauch.
nächster versuch:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
#!/bin/bash

timeout=10
path="/home/flesh/Jumpserver"
port=9000
ip="213.202.216.159"
cfg="jumpserver.cfg"
startDelay=30 #delay nach serverstart in sekunden
loopDelay=10 #delay nach jedem check in sekunden

cd $path
while true; do 
  case `echo "ÿÿÿÿgetstatus" | netcat -u -w$timeout localhost $port | grep mapname` in
    "")
      echo "Server hängt!"
      killproc $path/cod_lnxded
      ./cod_lnxded +set net_port $port +set net_ip $ip +exec $cfg +map_rotate &
      sleep $startDelay
    ;;
    *)
      echo "Server läuft noch..."
    ;;
  esac
  sleep $loopDelay
done

Herr_Hackbarrt
mhm ^^ des klappt schon besser merci beaucoup Augenzwinkern
yoda

Zitat:

Original von SoulJah
sorry... aber seit das rss-feed nicht mehr funzt, schau ich nicht mehr ganz so oft vorbei.


Werd Nighthawk deshalb mal antexten...