Avec systemd, fini les jolis rectangles avec marqué [OK] ou [Echec] au démarrage.
Alors concrètement qu'est-ce qui change ? Et bien SystemD offre surtout de nouveaux horizons en terme de parallélisation de scripts de démarrage, et déclenche le démarrage des services en fonction d'un événement, plutôt que sur du séquentiel. Bien entendu, SystemD est compatible avec les scripts LSB et SysV (= scripts qui commencent par /etc/init.d/xxx).
Pour gérer tout ça, l'utilisateur dispose d'un outil en ligne de commande appelé systemctl
, dont voici quelques exemples d'utilisation.
Emplacements des fichiers d'units systemd
/usr/lib/systemd/system
After
pour gérer la dépendance des targets/etc/systemd/system
. systemctl enable
créé des liens symboliques (wants) dans chaque dossier de targets pour les services à activer concernés. Lien de /etc… vers /usr/lib…/run/systemd/system
Liste des types d'units gérables.
systemd -t help
Lister les services gérables par systemd.
systemctl list-units
Liste de toutes les options pour une unit.
systemctl show sshd
Afficher les services actifs uniquement
systemctl --type=service
Afficher les services actifs uniquement (idem sans l'option list-units)
systemctl list-units --type=service
Affiche aussi les services inactifs
systemctl list-units --type=service --all
Liste des services actifs dans un affichage moins verbeux que list-units
systemctl list-unit-files --type=service
Afficher les services en failed
systemctl --failed --type=service
Mode verbeux du status
systemctl status -l <nom-service>
Voir toutes les dependances d'units
systemctl list-dependencies
Sur un service spécifique
systemctl list-dependencies vsftpd
Les units qui sont dépendantes de ce service
systemctl list-dependencies vsftpd --reverse
Rendre impossible le lancement d'un service en conflit avec un autre; Exemple avec firewalld et iptables.
systemctl mask iptables
Target actives
systemctl --type=target
Targets actives et inactives
systemctl --type=target --all
Dossier avec les liens associés aux targets
/etc/systemd/system/multi-user.target.wants
Changer de target (anciennement runlevel)
systemctl isolate rescue.target systemctl isolate reboot.target
Target par défaut
systemctl get-default systemctl set-default graphical.target
Variables du shell courant
systemctl show-environment
Lister l'ensemble des programmes chargés par systemd.
systemd-analyse
Démarrer, arrêter, redémarrer ou recharger un service.
systemctl start <service> systemctl stop <service> systemctl restart <service> systemctl reload <service>
Voir son statut.
systemctl status <service> systemctl status sshd systemctl is-active <service>
Activer, désactiver un service au démarrage (la commande chkconfig sera amenée à disparaître dans le futur).
systemctl enable <service> systemctl disable <service> systemctl is-enabled <service>
Interface graphique pour gérer les services au lieu de la ligne de commande.
yum install systemd-gtk
L'outil se nomme systemadm
.
Temps de démarrage du système.
systemd-analyze time
Temps de démarrage par service.
systemd-analyze blame
Temps de démarrage par service avec génération d'un graphique des temps de démarrage de chaque service.
systemd-analyze plot > plot.svg eog plot.svg