LINUX:Systemd
But
"Systemd" est le gestionnaire actuel des services sous Fedora.
Localisation
Toutes les configurations des services installés se trouvent dans le répertoire "/usr/lib/systemd". La majorité des services qui nous concernent se retrouvent dans le sous-répertoire "system".
Si on désire créer son propre service, il suffit de le placer dans le répertoire "/usr/lib/systemd/system". Pour que ce nouveau service soit directement pris en charge, il faut recharger la configuration par la commande:
systemctl daemon-reload
Cette contrainte s'applique également dans le cas d'une modification d'un fichier de configuration d'un service existant. Il faut remarquer que dans le cas d'une modification d'un de ces fichiers, ces changements risquent d'être écrasés lors d'une mise à jour. D'autres solutions existent, décrites plus bas.
Activation/Désactivation
Pour activer un service, on utilise la commande:
systemctl enable <NOM DU SERVICE>
Cette commande crée un lien symbolique à partir du fichier d'origine et le place dans un des sous-répertoires du répertoire "/etc/systemd/system" souvent "multi-user.target.wants". Elle peut créer plusieurs liens si nécessaire.
Dès lors il se lancera au démarrage de la machine.
Pour désactiver un service, la commande suivante élimine ce lien:
systemctl disable <NOM DU SERVICE>
Attention: certains services ont plusieurs liens; la commande ci-dessus les éliminera tous.
Lancement/Arrêt
Quelques commandes pour gérer le service:
- Pour lancer le service:
systemctl start <NOM DU SERVICE>
- Pour relancer le service:
systemctl restart <NOM DU SERVICE>
- Pour arrêter le service:
systemctl stop <NOM DU SERVICE>
Statut
Pour voir l'état du service:
systemctl status <NOM DU SERVICE>
Elle permet de constater certains problèmes.
Si le problème est plus grave, utilisez la commande suivante qui vous donnera plus de détails; souvent la ligne du fichier de configuration concernée par le blocage sera signalée.
journalctl -xeu <NOM DU SERVICE>
Timeout
Il peut arriver qu'au démarrage de la machine certains services ne puissent pas démarrer dans les temps.
Vous constaterez dans le fichier "/var/log/messages" un message du genre suivant:
Feb 7 22:57:57 serveurXXX systemd[1]: XXXXXX.service: Failed with result 'timeout' .
Ceci m'est arrivé deux fois sur une vieille machine devant lancer de très nombreux services. Certains très gourmands et longs à lancer n'ont pas pu démarrer dans les temps.
On peut y remédier en ajoutant une ligne dans la configuration générale du système de "systemd". On allonge ce temps limite de démarrage des services. Pour cela, on ajoute ou on adapte la ligne suivante dans le fichier "/etc/systemd/system.conf":
DefaultTimeoutStartSec=3min
Dans cet exemple, on le met à 3 minutes (défaut: 90 sec.). A ajuster selon les cas.
Une commande analogue existe, à mettre dans le fichier de configuration du service concerné mais alors il faut surveiller les modifications éventuelles apportées lors des mises à jour.
<ALT><CTRL><DEL>
Dans ce même fichier "/etc/systemd/system.conf", il peut être utile de ne pas pouvoir redémarrer la machine par la séquence de touches <ALT><CTRL><DEL> bien connue sous Windows mais qui fait tout autre chose, par l'ajout de la ligne:
CtrlAltDelBurstAction=none
L'utilisation de ces touches sur un serveur peut être perturbant si pas non approprié; vous n'êtes sûrement le seul à l'utiliser.
Fichier contenant le numéro de processus
A chaque programme lancé est attribué un numéro unique (PID). S'il est lancé deux fois, il en aura deux différents. Il est courant de retrouver ce numéro dans un fichier pour les services.
Paramétrage personnalisé
Chaque service géré par Systemd nécessite un paramétrage spécifique fourni par la distribution. Dans certains cas, on est amené à en modifier ou ajouter certains.