PDA

Bekijk Volledige Versie : Restart bij crash



Mikejuh!
11/07/07, 16:47
Hallo!
Ik gebruik op het moment een start.sh script en kill.sh script om de gameserver dus aan en uit te zetten. Omdat we nu klaar zijn met testen wil ik een soort crash script dat wanneer de server crashed en ik ben er niet, die automatisch na een paar seconde of minuten weer opnieuw start. Google heeft nog niets aan het licht gebracht maar ik geef niet op, wie kan mij intussen verder helpen?

bedankt
Mike!

Ramon Fincken
11/07/07, 17:01
define crash ?

andere server laten monitoren en toegang geven tot switch of SSH commando is dat een optie?

pierce
11/07/07, 17:01
Gaat het om de server op zich of puur de applicatie(het spel) wat herstart moet worden?

Keizer
11/07/07, 17:01
ik snap er niets van maar ik weet wel dat het met dit script kan!:



#!/bin/sh
cd /home/chef/cs/cstrike
touch blijvendraaien
while [ -f blijvendraaien ]
do
cd /home/chef/cs/startup/
. runne.die.hap.1
done





export LD_LIBRARY_PATH="/home/chef/cs/cstrike"
cd /home/chef/cs/cstrike
./hlds_run -game cstrike +maxplayers 12 +map de_dust2 -autoupdate
cd




#/bin/bash
cd ~/argh3
export LD_LIBRARY_PATH="/home/chef/cs/cstrike"
maxplayers=12
echo loading $maxplayers players
game=cstrike
echo loading $game game
map=sj_indoorx_small
echo loading $map
server=server.cfg
echo loading $server file
ip=
echo loading ip $ip
port=27015
echo port $port loaded
echo LOADING SETTINGS FINISHED

screen -A -m -d -S argh3 ./hlds_run +ip $ip -game $game +maxplayers $maxplayers +port $port +map $map +exec $server -autoupdate >>/dev/null &

cd


en



#!/bin/sh
/usr/bin/screen -d -S argh1 -m /home/chef/cs/startup/blijven.1


ooit es gemaakt door Sn0wb!atch van !ARGH!, thnx!


Als ik dit zo bekijk heb je alleen blijven.1 en runne.die.hap.1 en startargh1 nodig. starten met ./startargh1

ik hoop dat je er wat aan hebt ;)

swiep
11/07/07, 17:37
In enkele gevallen wil het voorkomen dat bij games zoals CSS, bij crashes in een screen, de screen sessie actief blijft en krijg je meldingen zoals restart with -DEBUG. In dat geval is een bash script zoals eerder getoond niet nuttig aangezien je screen sessie nog braaf draait.

Een alternatieve oplossing is om via een commandline monitor tool (simpele rip van bijvoorbeeld qstats of lgsl) te checken of de server nog online is en door middel van een modificatie in het script bij een offline status een bestandje aan te maken met het user of screen id . b.v. /tmp/restarts/cssklant01 waar cssklant01 je id is.

Vervolgens maak je een crontask aan voor een script die voor jou checkt welke bestandjes er in de /tmp/restarts folder zijn. Daar even de id's uit extracten en waarschijnlijk heb je ook al een restart script waar je met behulp van dit id wat mee kan.

Van al de subtasks hierboven zijn er genoeg voorbeelden te vinden.

Indien je het teveel werk vind, wat het niet is, kan je beter overstappen op een game control panel die het voor je regelt of even vragen wie een gamecontrol panel in de aanbieding heeft aangezien er genoeg hobbyisten hun tooltjes voor een schappelijk bedrag aanbieden.

Mikejuh!
11/07/07, 17:38
Gaat het om de server op zich of puur de applicatie(het spel) wat herstart moet worden?

Nee het gaat echt specifiek om het spel, cod2.

Gaat bovenstaande even bestuderen. bedankt.

Note: Dit gaat om een prive server, niets om te verhuren, een panel kopen is geen optie.

Kenneth
11/07/07, 19:33
ligt eraan hoe je de gameserver start, je zou bijv. als je een screenname (screen -dmS <screenname> bijv.) in 'screen' oid gebruikt op de screenname zoeken via script zoals:

#!/bin/bash
if [ `ps ax | grep -v grep | grep -c <username>` == "0" ]; then
restart
fi