Actualités

Relancer automatiquement un serveur (Linux)
clockEcrit par Poil | clock2007-02-14 00:00:00

Ce tutorial marche pour tous les (serveurs de) jeux supportés par qstat.
Il vous faudra Qstat et Screen d'installé sur votre distrib (Les 2 sont disponibles par défaut sur une Debian)

Supposons que nous avons un serveur ra4.

Le script pour lancer ra4 se nomme ra4serv.sh et contient :
#!/bin/sh
screen -S ra4 -d -m ./quake4-dedicated +set fs_basepath "/home/quake4" +set fs_savepath "/home/quake4/servra4" +set fs_game arena +exec server.cfg

Créons un script restartserv.sh qui se chargera de surveiller le / les serveurs :

#!/bin/bash
## On vérifie que RA4 n'est présent
ra4=$(ps -edf | grep "SCREEN -S ra4" | grep -v grep)
if [ -z "${ra4}" ]; then
## ra4 n'est pas lancé on le relance
/home/quake4/ra4serv.sh
else
## On test que le serveur n'est pas planté / timeout
$(/usr/local/bin/qstat -raw ";" -nh -q4s 127.0.0.1:28004 | grep -e DOWN -e TIMEOUT >/dev/null)
if [ $? -eq 0 ]; then
## On le tue si il est planté
echo ${ra4} | awk '{ system("kill -9 "$2) }'
## On le relance
/home/quake4/ra4serv.sh
fi
fi

Il ne reste plus qu'à mettre dans la crontab un appel au script toutes les X minutes :
*/1 * * * * /home/quake4/restartserv.sh

Commentaires

Aucun commentaire
Développé par Poil - Graphismes de DarkDaV - Icônes sous licence Creative Commons (famfam, nuovo ...)
Durée de génération : 1.4590940475464 secondes