GNU/Linux >> Tutoriels Linux >  >> Linux

Commandes Systemctl pour gérer le service Systemd

Systemctl est un utilitaire utilisé par systemd pour gérer le système et le gestionnaire de services. De nombreuses distributions Linux modernes telles que Ubuntu, Debian, Fedora, Linux Mint, OpenSuSE, Redhat ont adopté systemd comme système d'initialisation par défaut.

À l'aide de systemctl, vous pouvez démarrer, arrêter, recharger, redémarrer le service, répertorier les unités, vérifier l'état du service, activer/désactiver le service, gérer les cibles (niveaux d'exécution) et la gestion de l'alimentation.

Dans ce tutoriel, je vais vous montrer comment utiliser les commandes systemctl pour gérer le service systemd sous Linux.

1. Systemctl Démarrer/Arrêter/Redémarrer/Recharger le Service

Pour démarrer un service sous Linux, exécutez systemctl suivi du nom du service d'espace 'start'.

Exemple :

systemctl start dnsmasq

Contrairement à la commande service, la commande systemctl start ne donne aucune sortie.

Pour arrêter un service, utilisez systemctl stop service-name. Par exemple :

systemctl stop dnsmasq

Pour redémarrer un service, utilisez systemctl restart service-name.

Exemple :

systemctl restart dnsmasq

Pour recharger la configuration du service (disons ssh), sans le redémarrer, utilisez systemctl reload service-name.

Par exemple :

systemctl reload sshd

2. Systemctl vérifie l'état du service

Afin de voir si un service est en cours d'exécution ou non, nous pouvons utiliser la vérification d'état systemctl.

systemctl status dnsmasq

3. Vérifier et activer/désactiver le service au démarrage

Pour activer un service au démarrage (cela correspond à 'chkconfig on' dans le système sysvinit), utilisez systemctl enable service-name.

Exemple :

systemctl enable dnsmasq.service

De même, les services peuvent être désactivés au démarrage, lancez :

systemctl disable dnsmasq.service

Afin de vérifier si un service est activé au démarrage ou non, exécutez :

systemctl is-enabled dnsmasq.service

4. Unités de liste Systemctl

Pour répertorier toutes les unités en cours d'exécution, exécutez la commande systemctl sans aucune option. L'option list-units fait également la même chose.

systemctl

ou

systemctl list-units

Les unités défaillantes peuvent être listées avec l'option --failed.

systemctl --failed

Pour lister tous les services actifs, lancez :

systemctl list-units -t service

6. Commandes de redémarrage/arrêt de Systemctl

Comme la commande shutdown, la commande systemctl pour arrêter le système, le redémarrer ou le mettre en veille prolongée.

La commande suivante éteindra le système et éteindra la machine et enverra une notification à tous les utilisateurs connectés.

systemctl poweroff

La commande suivante éteindra le système mais n'éteindra pas la machine. Cela enverra une notification à tous les utilisateurs connectés.

systemctl halt

Éteignez la machine mais n'enverrez aucune notification à tous les utilisateurs connectés.

systemctl --no-wall poweroff

Pour afficher les détails de l'arrêt, exécutez la commande ci-dessous.

journalctl -u systemd-shutdownd

7. Systemclt pour gérer les systèmes distants

En règle générale, toutes les commandes systemctl ci-dessus peuvent être utilisées pour gérer un hôte distant avec la commande systemctl elle-même. Cela utilisera ssh pour la communication avec l'hôte distant. Tout ce que vous avez à faire est d'ajouter l'utilisateur et l'hôte à la commande systemctl comme ceci :

systemctl status sshd -H [email protected]

8. Gestion des cibles

Systemd a un concept de cibles ayant un objectif similaire aux niveaux d'exécution dans le système sysVinit.

Les niveaux d'exécution dans sysVinit étaient principalement numériques (0,1,2,...). Voici les niveaux d'exécution dans sysVinit avec leurs homologues systemd :

0 runlevel0.target, poweroff.target
1, s, single runlevel1.target, rescue.target
2, 4 runlevel2.target, runlevel4.target, multi-user.target
3 runlevel3.target, multi-user.target
5 runlevel5.target, graphical.target
6 runlevel6.target, reboot.target
emergency emergency.target

Pour modifier la cible actuelle, saisissez :

systemctl isolate graphical.target

Si vous voulez voir dans quelle cible vous vous trouvez, vous devez lister toutes les unités correspondantes.

systemctl list-units --type=target

Vous pouvez voir "graphical.target" répertorié ici. C'est ce que nous avons changé notre cible. Maintenant, changeons à nouveau le niveau d'exécution en multi-user.target, puis analysons cette sortie :

systemctl isolate multi-user.target
systemctl list-units --type=target

Pour répertorier la cible par défaut, saisissez :

systemctl get-default

La cible par défaut peut être définie avec la commande set-default, tapez :

systemctl set-default graphical.target

Autre commande systemd utile

Se connecter à systemd

Le systemd a son propre système de journalisation appelé journald. Il remplace le démon syslog de sysVinit.

journalctl

Pour voir tous les messages de démarrage, exécutez la commande "journalctl -b".

journalctl -b

La commande suivante suit les journaux système en temps réel (similaire à tail -f).

journalctl -f

Pour vérifier les journaux spécifiques à un service ou à un exécutable particulier, utilisez journalctl comme :

journalctl /usr/sbin/dnsmasq

Trouver la durée du processus de démarrage

Pour trouver la durée du processus de démarrage systemd avec la commande suivante :

systemd-analyze

L'heure systemd-analyze affiche également les mêmes informations.

systemd-analyze time

Pour imprimer une liste de toutes les unités en cours d'exécution classées par temps d'initialisation, utilisez systemd-analyze blame.

systemd-analyze blame

Commande Hostnamectl

Pour afficher et modifier le nom d'hôte, utilisez la commande hostnamectl.

hostnamectl

Conclusion

Dans ce didacticiel, nous avons appris les commandes systemctl pour gérer le service systemd dans les distributions Linux. J'espère que vous avez apprécié la lecture et s'il vous plaît laissez vos suggestions dans la section des commentaires ci-dessous.

Lire aussi :

  • Processus de démarrage Systemd – Examen détaillé sous Linux
  • Coloré ! systemd vs sysVinit Linux Cheatsheet

Linux
  1. Gérer plusieurs instances de service avec systemctl

  2. Gérer le démarrage à l'aide de systemd

  3. Comment gérer les unités systemd au démarrage

  4. Comment utiliser la commande Systemctl pour gérer les services Systemd

  5. Comment créer un service Systemd sous Linux

Commandes séparées pour gérer la partition de disque

Gestion des cgroups avec systemd

Premiers pas avec systemctl

Manière correcte d'utiliser Ubuntu systemctl pour contrôler Systemd

CentOS / RHEL 7 :Guide du débutant sur les unités de service systemd

Comment arrêter le service systemd