Rebooter automatiquement Source Dedicated Server

A lire avant de poursuivre : Structure & agencement.

Prérequis : Installer Source Dedicated Server

Nous allons faire en sorte que notre serveur reboot automatiquement chaque jour pour éviter des fuites de mémoires vive (RAM), des lags, mais aussi si votre machine vient a rebooter pour X raisons faire en sorte que notre serveur se relancent automatiquement.

La manipulation consiste à se déplacer dans le dossier « ../init.d », créer un scripts shell.

Nous allons nous déplacer dans le dossier « ../init.d » (/etc/init.d) et nous allons créer un fichier avec l'extension .sh (ex : reboot_journalier.sh).

cd /etc/init.d
nano reboot_journalier.sh

 

Dans ce fichier nous allons mettre ceci (adapté pour vous bien évidemment) :

# Gestion de Reboot journalier

# Arrêt des serveurs
su
mic -c "screen -dr css_ffa -X quit" 

sleep 10

# Relance des serveurs
su
mic -c "cd /home/mic/hlds/srcds/css; screen -dmS css_ffa taskset -c 0 ./srcds_run -game cstrike +maxplayers 20 +map de_dust2 -port 27015 -autoupdate"

En détail :

« su mic » indique quel user va lancer la commande
« screen -dr css_ffa -X quit » indique que le screen css_ffa doit être arrêté

« sleep 10 » le délai d'attente pour redémarrer le serveur

« su mic » indique quel user va lancer la commande
« cd /home/mic/hlds/srcds/css » indique le chemin ou se trouve le binaire css
« screen -dmS css_ffa » indique le nom du screen
« taskset -c 0 » lorsque vous avez une machine a plusieurs coeurs, exemple 4, vous pouvez dire sur quel coeur doit tourner votre serveur. 1er coeur = 0, 2nd coeur = 1, 3ème coeur = 2 et 4ème coeur = 3. Dans notre exemple c'est 0 donc le coeur 1. L'avantage est que si vous avez plusieurs serveurs, ils ne se gêneront pas en cas de lag etc.
« ./srcds_run » la commande pour lancer srcds
« -game cstrike » indique quel jeu doit être lancer
« +maxplayers 20 » nombre de slots du serveur
« +map de_dust2 » map de démarrage du serveur
« -port 27015 » définir le port du serveur
« -autoupdate » pour que votre serveur se mette a jour tout seul

Nous allons modifier les droits de notre scripts shell afin de le rendre exécutable.

chmod a+x reboot_journalier.sh

L'opération suivante consiste a définir les jours et l'heure du reboot. Pour se faire nous allons utiliser crontab. Il faut Taper ceci :

crontab -e

puis vous allez entrer ceci :

0 8 * * * /etc/init.d/reboot_journalier.sh >/dev/null 2>&1

En détail :

« 0 » les minutes, entre 0 et 59
« 8 » les heures, entre 0 et 23
« la 1ère * » jour du mois, entre 0 et 31, si vous laissez une * ce sera tous les jours du mois
« la 2nd * » les mois, entre 0 et 12, si vous laissez une * ce sera tous les mois de l'année
« la 3ème * » jour de semaine, en laissant une * ce sera tous les jours de la semaine
« /etc/init.d/reboot_journalier.sh » chemin du fichier a exécuter.

Dans cette exemple, tous les matins a 8h00 le fichier « reboot_journalier.sh » sera exécuter, le scripts shell commence par stopper le serveur (screen css_ffa) puis 10sec après il relance le serveur.

La manipulation consiste à se déplacer dans le dossier « ../init.d », créer un scripts shell.

Nous allons nous déplacer dans le dossier « ../init.d » (/etc/init.d) et nous allons créer un fichier avec l'extension .sh (ex : reboot_automatique.sh).

cd /etc/init.d
nano reboot_automatique.sh

Dans ce fichier nous allons mettre ceci (adapté pour vous bien évidemment) :

### BEGIN INIT INFO
# Provides: css_ffa
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
#!/bin/sh
#Lancement du serveur css_ffa
cd 
/home/mic/hlds/srcds/css/
su mic -c "cd /home/mic/hlds/srcds/css; screen -dmS css_ffa taskset -c 0 ./srcds_run -game cstrike +maxplayers 20 +map de_dust2 -port 27015 -autoupdate"

En détail :

### BEGIN INIT INFO
# Provides: css_ffa
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO

Cette partie est obligatoire sous debian 6.

« #Lancement du serveur css_ffa » mettez ce que vous voulez peu importe.
« cd /home/mic/hlds/srcds/css/ » chemin du binaire de css
« su mic -c "cd /home/mic/hlds/srcds/css..... » commande de lancement de votre serveur avec les différentes options. Attention a modifier selon comment vous avez nommer votre user vos dossiers etc.

Nous allons modifier les droits de notre scripts shell afin de le rendre exécutable, puis activons le démarrage automatique lors du boot.

chmod 755 reboot_automatique.sh
cd /etc/init.d 
update-rc.d reboot_automatique.sh defaults

Dans cette exemple, le fichier « reboot_automatique.sh » sera exécuter au démarrage de votre machine , le scripts shell lance le serveur (screen css_ffa) automatiquement.

Voila, amusez-vous bien, et n'hésitez pas à poser vos questions.

Propulsé par Drupal