Outils pour utilisateurs

Outils du site


garruk_teeworlds

Serveur teeworlds

Système

Installation

L'installation a consisté en l'installation du paquet teeworlds-server.

# aptitude install teeworlds-server

Le mettre à jour ne devrait donc pas être plus compliqué que :

# aptitude update && aptitude upgrade teeworlds-server

Lancement

Un script d'init /etc/init.d/teeworlds permet de lancer le serveur au démarrage :

#! /bin/sh
stop() {
/etc/teeworlds/teeworlds-stop
}
start() {
/etc/teeworlds/teeworlds-start
}

case $1 in
"start")
start
;;
"stop")
stop
;;
"restart")
stop
start
;;
esac
$ cat /etc/teeworlds/teeworlds-stop
#! /bin/sh

kill -9 $(pgrep -f teeworlds-server)
$ cat /etc/teeworlds/teeworlds-start
#! /bin/sh

confdir="/home/teeworlds/conffiles"

touch /tmp/teeworlds

/usr/games/teeworlds-server -f $confdir/default.cfg &> /dev/null

Remarque : ces scripts sont vraiment dégueulasses. Il faudrait réutiliser les modèles de http://wiki.imt-lille.club/doku.php?id=multiple_php_instances#scripts_d_init

Changement de confs

Un compte ftp : teeworlds a été créé. À la racine de celui-ci, un dossier conffiles qui contient un fichier de conf teeworlds.

Une cron lance un script toutes les minutes :

$ cat /var/spool/cron/crontabs/root
* * * * * /etc/teeworlds/ftp-restart >> /var/log/teeworlds
$ cat /etc/teeworlds/ftp-restart
#!/bin/bash

ftp_dir="/home/teeworlds"

if test -f "$ftp_dir/restart" ; then

echo "`date` : removing $ftp_dir/restart file"
rm "$ftp_dir/restart"

echo "`date` : stopping teeworlds server"
/etc/init.d/teeworlds stop

echo "`date` : starting teeworlds server"
/etc/init.d/teeworlds start

fi

Autrement dit, si quelqu'un veut changer la conf, il peut l'uploader via ftp et déposer un fichier restart (vide). Ce fichier sera consommé dans la minute en relançant le serveur avec la nouvelle conf.

:!: Relancer le serveur avec une nouvelle conf coupe les connexions.

Remarque : ça a été bien fait à l'arrache, une meilleure méthode serait d'utiliser la commande kill -USR2.

Réseau

Ports

Un serveur teeworlds écoute par défaut sur le port 8303.

Firewall

Les lignes suivantes ont été rajoutées au fichier /etc/firewall/firewall-start :

[...]
teeworlds="8303"
[...]
$i -p udp --dport $teeworlds $a
[...]

Comme on ne veut que des joueurs de Telecom, ces lignes sont suffisantes.

garruk_teeworlds.txt · Dernière modification: 2017/12/06 12:54 par deldel