Héberger un serveur de jeu¶
Une très grosse partie des utilisateurs de linux hébergent des services sur leur machine. Un service est un programme qui démarre avec la machine, et qui est redémarré en cas de problème.
C’est par exemple pratique pour héberger des serveurs de jeu !
Les services¶
La plupart des distributions utilisent systemd
pour gérer les services du
système.
Ouvrez un terminal et saisissez systemctl status
pour lister les services
actifs sur votre machine.
Chaque ligne qui se termine par .service
correspond à un service, et les
lignes immédiatement en dessous sont les processus qui appartiennent au service.
Un système qui ne fait qu’héberger un serveur de jeu aura un status comme celui-ci :
● mamachine
State: running
Jobs: 0 queued
Failed: 0 units
Since: Wed 2020-03-25 09:37:08 PDT; 14h ago
CGroup: /
├─user.slice
└─system.slice
└─monserveurdejeu.service
└─4242 /usr/bin/monserveurdejeu
En pratique, il y a beaucoup, beaucoup de services sur une machine !
Pour rajouter un nouveau service, il faut créer un fichier dans le dossier
/etc/systemd/system
.
Le contenu de ce fichier sert à décrire quoi démarrer avec le service:
[Unit]
Description=Un serveur de jeu
[Service]
# Quel programme démarrer
ExecStart=/usr/bin/monserveurdejeu
[Install]
# Choisit quand démarrer le service si il est activé.
# On peut choisir de ne pas démarrer tous les services (pas besoin de démarrer
# des services graphiques si il n'y a pas d'écran branché par exemple).
# multi-user correspond à un démarrage normal du système, où plusieurs
# utilisateurs peuvent s'identifier.
WantedBy=multi-user.target
On peut ensuite l’activer avec systemctl enable monservice
, pour qu’il
démarre tout seul avec la machine, puis le démarrer avec systemctl start monservice
.
Note
lorsque vous modifiez le fichier du service, systemd ne prend pas
immédiatement en compte les changements. Utilisez systemctl daemon-reload
pour qu’ils soient pris en compte.
La configuration¶
Il n’y a malheureusement pas de format de configuration unifié sous linux. La configuration dépend du programme dont il est question.
Par contre, tout le monde s’est mis d’accord pour stocker les fichiers de
configuration des services au même endroit: /etc
Si vous créez votre propre service, vous savez où mettre votre fichier :)
L’objectif¶
Votre mission, si vous l’acceptez, et de créer un service systemd qui démarre un serveur teeworlds !