Hi,
Update: - Folgt die Tage, da manche Verknüpfungen haben, müssen die Leute leider die Shortcuts neusetzen.
Jedes Shortcut muss seinen eigenen Namen haben, also kein Name darf doppel vorkommen, sonst grept er die PIDS nicht richtig aus der Prozessliste.
--
Für die, die andere Strukturen haben, können mir eine PM mit dieser senden, dann werde ich die Shell bearbeiten, oder ihr versucht es selbst.
Manche haben das Problem, dass bei ihnen der Auth (Login) Server, DB Server und/oder der Gamecore an sich abstürzt.
Wenn manche dann auf Klassenfahrt sind, oder nicht zu Hause sind, können sie das Problem nicht beheben, was nicht gerade toll ist.
Dafür habe ich eine kleine Shell geschrieben, die sie autom. startet, wenn sie down sind.
Ihr müsst nur den Pfad zu den Serverfiles anpassen, und zu dem DB, Auth Ordner anpassen, und eben den Pfad zu den einzelnen Gamecores.
Ihr könnt es automatisieren in dem ihr einen Cronjob installiert, oder halt via. Screen.
Alle Vorgänge werden in die LOG geschliegen (corerestart.log, die in dem Verzeichnis ist, wo die Gamefiles liegen)
PS: Ich hab' das gestern in paar Minuten geschrieben, ich werde es die Tage nochmal verbessern, funktioniert aber!
Update: - Folgt die Tage, da manche Verknüpfungen haben, müssen die Leute leider die Shortcuts neusetzen.
Jedes Shortcut muss seinen eigenen Namen haben, also kein Name darf doppel vorkommen, sonst grept er die PIDS nicht richtig aus der Prozessliste.
--
Für die, die andere Strukturen haben, können mir eine PM mit dieser senden, dann werde ich die Shell bearbeiten, oder ihr versucht es selbst.
Manche haben das Problem, dass bei ihnen der Auth (Login) Server, DB Server und/oder der Gamecore an sich abstürzt.
Wenn manche dann auf Klassenfahrt sind, oder nicht zu Hause sind, können sie das Problem nicht beheben, was nicht gerade toll ist.
Dafür habe ich eine kleine Shell geschrieben, die sie autom. startet, wenn sie down sind.
Ihr müsst nur den Pfad zu den Serverfiles anpassen, und zu dem DB, Auth Ordner anpassen, und eben den Pfad zu den einzelnen Gamecores.
Ihr könnt es automatisieren in dem ihr einen Cronjob installiert, oder halt via. Screen.
Alle Vorgänge werden in die LOG geschliegen (corerestart.log, die in dem Verzeichnis ist, wo die Gamefiles liegen)
PS: Ich hab' das gestern in paar Minuten geschrieben, ich werde es die Tage nochmal verbessern, funktioniert aber!
PHP Code:
#!/bin/sh
GAMEDIR="/home/game"
LOG="$GAMEDIR/corerestart.log"
PIDAUTH=`ps aux | grep auth | grep -v grep | awk '{print $2;}'`
if [ "x$PIDAUTH" != "x" ];
then
echo "`date +%d.%m.%Y-%H:%M:%S` :: AUTH SERVER IST OKAY! PID: $PIDAUTH" >> $LOG
else
echo "`date +%d.%m.%Y-%H:%M:%S` :: Der Auth (Login-Server) ist abgestürzt" >> $LOG
echo "`date +%d.%m.%Y-%H:%M:%S` :: Starte Auth (Login-Server) ..." >> $LOG
cd $GAMEDIR/auth && ./auth
fi
PIDDB=`ps aux | grep db | grep -v grep | awk '{print $2;}'`
if [ "x$PIDDB" != "x" ];
then
echo "`date +%d.%m.%Y-%H:%M:%S` :: DB CORE IST OKAY! PID: $PIDDB" >> $LOG
else
echo "`date +%d.%m.%Y-%H:%M:%S`:: Der DB Core ist abgestürzt" >> $LOG
echo "`date +%d.%m.%Y-%H:%M:%S` :: Starte DB Core & den rest des Servers ..." >> $LOG
cd $GAMEDIR/db && ./db
cd $GAMEDIR/auth && ./auth
cd $GAMEDIR/channel1/first && ./first
cd $GAMEDIR/channel1/game1 && ./game1_1
cd $GAMEDIR/channel1/game2 && ./game1_2
cd $GAMEDIR/channel1/game3 && ./game1_3
cd $GAMEDIR/channel1/game4 && ./game1_4
fi
PIDFIRST=`ps aux | grep first | grep -v grep | awk '{print $2;}'`
if [ "x$PIDFIRST" != "x" ];
then
echo "`date +%d.%m.%Y-%H:%M:%S` :: FIRST CORE IST OKAY! PID: $PIDFIRST" >> $LOG
else
echo "`date +%d.%m.%Y-%H:%M:%S` :: Der FIRST Core ist abgestürzt" >> $LOG
echo "`date +%d.%m.%Y-%H:%M:%S` :: Starte FIRST Core ..." >> $LOG
cd $GAMEDIR/channel1/first && ./first
fi
PIDGAME1=`ps aux | grep game1_1 | grep -v grep | awk '{print $2;}'`
if [ "x$PIDGAME1" != "x" ];
then
echo "`date +%d.%m.%Y-%H:%M:%S` :: GAME1_1 CORE IST OKAY! PID: $PIDGAME1" >> $LOG
else
echo "`date +%d.%m.%Y-%H:%M:%S` :: Der GAME1_1 Core ist abgestürzt" >> $LOG
echo "`date +%d.%m.%Y-%H:%M:%S` :: Starte GAME1_1 Core ..." >> $LOG
cd $GAMEDIR/channel1/game1 && ./game1_1
fi
PIDGAME2=`ps aux | grep game1_2 | grep -v grep | awk '{print $2;}'`
if [ "x$PIDGAME2" != "x" ];
then
echo "`date +%d.%m.%Y-%H:%M:%S` :: GAME1_2 CORE IST OKAY! PID: $PIDGAME2" >> $LOG
else
echo "`date +%d.%m.%Y-%H:%M:%S` :: Der GAME1_2 Core ist abgestürzt" >> $LOG
echo "`date +%d.%m.%Y-%H:%M:%S` :: Starte GAME1_2 Core ..." >> $LOG
cd $GAMEDIR/channel1/game2 && ./game1_2
fi
PIDGAME3=`ps aux | grep game1_3 | grep -v grep | awk '{print $2;}'`
if [ "x$PIDGAME3" != "x" ];
then
echo "`date +%d.%m.%Y-%H:%M:%S` :: GAME1_3 CORE IST OKAY! PID: $PIDGAME3" >> $LOG
else
echo "`date +%d.%m.%Y-%H:%M:%S` :: Der Game1_3 Core ist abgestürzt" >> $LOG
echo "`date +%d.%m.%Y-%H:%M:%S` :: Starte Game1_3 Core ..." >> $LOG
cd $GAMEDIR/channel1/game3 && ./game1_3
fi
PIDGAME4=`ps aux | grep game1_4 | grep -v grep | awk '{print $2;}'`
if [ "x$PIDGAME4" != "x" ];
then
echo "`date +%d.%m.%Y-%H:%M:%S`:: GAME1_4 CORE IST OKAY! PID: $PIDGAME4" >> $LOG
else
echo "`date +%d.%m.%Y-%H:%M:%S` :: Der Game1_4 Core ist abgestürzt" >> $LOG
echo "`date +%d.%m.%Y-%H:%M:%S` :: Starte Game1_4 Core ..." >> $LOG
cd $GAMEDIR/channel1/game4 && ./game1_4
fi
PIDGAME99=`ps aux | grep game99 | grep -v grep | awk '{print $2;}'`
if [ "x$PIDGAME99" != "x" ];
then
echo "`date +%d.%m.%Y-%H:%M:%S`:: GAME99 CORE IST OKAY! PID: $PIDGAME99" >> $LOG
else
echo "`date +%d.%m.%Y-%H:%M:%S` :: Der Game99 Core ist abgestürzt" >> $LOG
echo "`date +%d.%m.%Y-%H:%M:%S` :: Starte Game99 Core ..." >> $LOG
cd $GAMEDIR/game99 && ./game99
fi