PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TrackMania United AutoReStart


ts-onlyfree.de
12.10.07, 15:35
moinmoin

wir haben bei uns auf dem root zur zeit ingesamt 6 TMU-Dedis laufen.
Leider schmieren die ab und an mal ab und müssen dann per Hand neugestartet werden, nachts is das natürlich unpraktisch wenn kein Admin da ist.

Welche Möglichkeiten gibt es denn per shellscript die Abstürze abzufangen und den betroffenen Srv wieder zu starten?

Auch wäre es schön, wenn die Server nach einem reboot gestartet werden.

Ich persönlich habe fast 0 plan, mir gehört die Kiste aber auch nicht und ich habe auch keinen Zugriff, aber ich suche eine Lösung für das Problem um dem 'Chef' nicht noch mehr unnötige Arbeit zu machen ;)


cya
ts-onlyfree

ts-onlyfree.de
12.10.07, 18:55
hab da jez was gefunden, wurde auch schon für unsere zwecke angepasst, allerdings bekomme ich beim ausführen folgende meldung :

./tmutest.sh
kill: usage: kill [-s sigspec | -n signum | -sigspec] [pid | job]... or kill -l [sigspec]

Der Server startet, aber bei jedem Aufruf startet er nochmal und immer wieder... verstehen nicht wieso :(


#! /bin/sh

name="tmutest"
log="/home/tmu/tms_test/shell.log"

frage=`screen -ls | grep -c "$name"`
if [ "$frage" -lt "1" ]
then
kill `ps aux | grep -v grep | grep -i screen | grep -i $name | awk '{print $2}'` >>$log
cd /home/tmu/tms_test
screen -A -m -d -S "tmutest" ./tmutest /internet /dedicated_cfg=dedicated_cfg.txt /game_settings=MatchSettings=all_easy.txt >>$log
echo ".... $name wurde gestartet .... " >>$log
else
echo "$name ist gestartet ($frage)" >>$log
fi

exit 1


Quelle (http://www.linuxforen.de/forums/showthread.php?t=186690)

wenn man manuell
screen -A -m -d -S "tmutest" ./tmutest /internet /dedicated_cfg=dedicated_cfg.txt /game_settings=MatchSettings=all_easy.txt
ausführt, startet der server...

aber
screen -ls | grep -c "tmutest"
liefert immer 0 zurück ...

hoffe jemand weiß wieso :)

Fisch.666
12.10.07, 19:24
Hi!

Wenn Du den TMU Server mit Screen starten willst musst Du an Deine Commandline noch diesen Parameter anhängen:

/nodaemon

da der Prozess sonst als Daemon gleich in den Hintergrund geschickt wird. Nach der Änderung sollte das Skript normal laufen...

*Edit*

Achso, und es gibt nen Edit Button... ;)

Painkiller
12.10.07, 19:34
Das mit dem kill und die pids da rausgreppen ist ja hart. :ugly:

Mach dafuer mal lieber ein "pgrep $name".


Poste mal die Ausgabe von "screen -ls".


Edit: Zu langsam.

ts-onlyfree.de
12.10.07, 19:37
DAS ISSES!!! :D :D :D I LOVE YOU!!

Wie kann ich dir Danken?!?!?

//edit

ähh... painkiller.. was meinst du?

//edit2

eine frage dann noch, dann sind wir happy =)

wo trägt man am besten den cronjob ein? crontab -e auf benutzerebene?

Painkiller
12.10.07, 19:45
Arrr.... hat sich erledigt, ich dachte pgrep beachtet auch die Startparameter von screen.

Wenn es so laeuft, lass es laufen. :)


Edit: Auf Benutzerebene ist auf jedenfall empfehlenswert.