====== systemd ====== ===== Généralités ===== * [[http://fr.wikipedia.org/wiki/Systemd|systemd]]. 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). ===== Documentation ===== * [[http://linuxfr.org/news/%C3%A9volutions-techniques-de-systemd|Evolutions technique de systemd sur Linux FR]]. ===== Configuration ===== 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 * Fichiers par défaut des units : ''/usr/lib/systemd/system'' * /usr/lib/systemd/system/multi-user.target * Directive ''After'' pour gérer la dépendance des targets * Fichiers qui surcharge les units par défaut: ''/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... * Runtime configuration générées automatiquement : ''/run/systemd/system'' * Une unit regroupe tout ce qui peut être géré (un service mais pas que, un socket, un montage...) * Une target est une collection d'unit, elle remplace les runlevel (multi-user correspond au CLI runlevel 3 et graphical au mode graphique runlevel 5) * Un want dans systemd définit quelle unit systemd wants quand il lance une target (lien symbolique qui permet l'activation ou la désactivation au démarrage) 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 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 systemctl stop systemctl restart systemctl reload Voir son statut. systemctl status systemctl status sshd systemctl is-active Activer, désactiver un service au démarrage (la commande chkconfig sera amenée à disparaître dans le futur). systemctl enable systemctl disable systemctl is-enabled Interface graphique pour gérer les services au lieu de la ligne de commande. yum install systemd-gtk L'outil se nomme ''systemadm''. ===== Optimisation ===== 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