TUTOS.EU

La gestion des services sous Linux

Comment démarrer, arrêter, recharger etc... un service sous Linux


Comme dit sur système V, les services sont des scripts d'initialisation gérés initialement par System V.

 

Depuis systemd le remplace. Comme dit sur Lea-linux.org, systemd est désormais utilisé sur une bonne partie des distributions comme Ubuntu, Red Hat, Fedora, Mageia, openSuSE, Arch Linux.

 

Entre System V et systemdil y a eu upstart

Le site ubuntu-fr.org permet de voir comment créer un service et la doc de systemd peut se voir sur man7.org

Si vous utilisez systemD, pour lister les services tapez

systemctl list-unit-files --type=service
Lien vers le fichier : cliquez ici Copier le code

Exemple de résultat :

Notez que j'avais vu une autre commande proche qui est :

systemctl list-units
Lien vers le fichier : cliquez ici Copier le code

Et qui affiche ce type de résultat :

On peut chercher un service avec un wildcard.
Par exemple pour lister l'état des services qui commencent par nfs, on peut taper

systemctl status nfs*
Lien vers le fichier : cliquez ici Copier le code

Vous pouvez afficher l'aide de systemctl avec la commande

man systemctl
Lien vers le fichier : cliquez ici Copier le code

Résultat :

Les commandes principales de systemctl sont :

Commande Fonction
systemctl list-units Lister les services
systemctl status [nom du service].service Connaitre l'état d'un service
systemctl enable [nom du service].service Activer un service
systemctl disable [nom du service].service Désactiver un service
systemctl stop [nom du service].service Arrêter un service
systemctl start [nom du service].service Démarrer un service
systemctl restart [nom du service].service Redémarrer un service
systemctl reload [nom du service].service Recharge du service avec les nouveaux paramètres (évite les coupures)
systemctl daemon-reload Pour prendre en compte la modification d'un service

Exemple de redémarrage d'un service avec systemctl :

Autre exemple où là on affiche l'état du service :

Les fichiers de configuration des services actifs sont dans /etc/systemd/system/multi-user.target.wants/

Le fichier de configuration de votre service peut être ailleur, cad /usr/lib/systemd/system/ ou /etc/systemd/system/

On peut constater l'usage de l'un et de l'autre quand on active un service

autre exemple

Bon à savoir, vous pouvez spécifier le compte et groupe à utiliser pour faire tourner le service dans la section [Service]

[Service]
User=nom_utilisateur
Group=nom_groupe
Lien vers le fichier : cliquez ici Copier le code

Quand vous modifiez un service, il faut recharger le daemon systemd et redémarrer le service

sudo systemctl daemon-reload
sudo systemctl restart monservice
Lien vers le fichier : cliquez ici Copier le code

Upstart est un autre remplaçant du traditionnel init Unix "System V" mais il a été lui même remplacé par systemd.

Si vos services sont gérés par Upstart, pour les lister, tapez :

initctl list
Lien vers le fichier : cliquez ici Copier le code

Si votre 'init' est l'ancien système, cad System V, la commande "service" ci-dessous devrait vous lister vos services :

service --status-all
Lien vers le fichier : cliquez ici Copier le code

Exemple :

Au cas où, vous trouverez plus d'informations sur System V sur ce lien :
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-boot-init-shutdown-sysv.html

L'aide de la commande service s'obtient en tapant

man service
Lien vers le fichier : cliquez ici Copier le code

Les commandes courantes sont

Commande Fonction
service --status-all Lister les services
service [nom du service] stop Arrêter un service
service [nom du service] start Démarrer un service
service [nom du service] restart Redémarrer un service

Exemple :

Pages Web

Site WebDescription
Lea-linux.orgExplications sur Systemd sur Lea-linux.org
Lea-linux.orgAjouter et supprimer des services (daemons, etc.) au démarrage.
Askubuntu.comPost de forum où l'on trouve pas mal de solutions sur ce sujet
doc.ubuntu-fr.orgsystemd

2