Systemd est une alternative au démon init de System V spécifiquement conçu pour le noyau Linux.
Il a pour but :
Le projet a été lancé par Lennart Poettering en 2010 et publié sous licence GNU LGPL version 2.11.
Le nom de ce programme vient de « system daemon » : le daemon du système.
C'est devenu le système d'init par défaut de Debian depuis la version Jessie (Debian 8).
Déjà installé par défaut.
Et on dit que le libre c'est compliqué dit donc !
Un lien absolument nécessaire à consulter :
Merci Severian
Post sur le forum df :
Remarque importante !
Seuls l’utilisateur « root » ou le groupe « systemd-journal » peuvent consulter le journal.
journalctl
journalctl -u cups
journalctl _PID=1
journalctl /usr/sbin/dhcpcd
journalctl --since="today"
journalctl --since="AAAA-MM-JJ hh:mm:ss" --until="AAAA-MM-JJ hh:mm:ss"
journalctl -xb
journalctl -r -p err
On peut activer automatiquement des scripts root au démarrage.
Pour activer par exemple le script /opt/monscript.sh
au démarrage de debian.
monscript.service
avec le code suivant :cat >/etc/systemd/system/monscript.service <<EOF [Unit] Description=/opt/monscript.sh Compatibility ConditionPathExists=/opt/monscript.sh after=NetworkManager.service [Service] Type=forking ExecStart=/opt/monscript.sh start TimeoutSec=0 StandardOutput=tty RemainAfterExit=yes SysVStartPriority=99 [Install] WantedBy=multi-user.target EOF
À noter le démarrage du réseau pour l'utilisation de l'application Network Manager : after=NetworkManager.service
.
After=network.target
/opt/monscript.sh
ainsi :cat > /opt/monscript.sh <<EOF #!/bin/sh -e # /opt/monscript.sh commande <argument> <options> <etc> exit 0 EOF
systemctl enable monscript
Merci à Freemaster et vv222 sur le forum là :
Que leurs pas soient à jamais parfumés de pétales de roses…
Systemd gère des services système mais également des périphériques, des points de montage, des timers, et d'autres composants du système.
Le terme générique pour tous ces objets dans systemd est une unité (Unit).
La section [Unit] stocke l'information qui s'applique non seulement aux services mais également à tous les autres types d'unité systemd.
Chaque unité utilise un nom d'extension en rapport avec son type :
service : *.service groupe d’unités : *.target montage : *.mount socket : *.socket
systemctl list-units
systemctl status kdm.service
systemctl enable kdm.service
systemctl disable kdm.service
systemctl start kdm.service
systemctl stop kdm.service
systemctl status
Pour gérer les services au niveau utilisateur, il faut ajouter l’option « --user ».
Par exemple désactiver le service « dropbox » ainsi :
systemctl --user disable dropbox
Il est possible de regrouper plusieurs unités dans une unité spéciale dont le nom d'extension est target (cible).
Cela permet de reproduire le fonctionnement des niveaux d’exécution (runlevels de SysVinit).
Pour lister toutes les cibles2) :
systemctl list-units --type=target -all
Voici un tableau de correspondance avec l'ancien système : : tableau à contrôler :
Niveau d'exécution | Cible systemd | Notes |
0 | poweroff.target | Arrêt de l'ordinateur |
1 | rescue.target | Mode mono-utilisateur |
2, 3, 4 | multi-user.target | Mode multi-utilisateur en mode texte |
5 | graphical.target | Mode multi-utilisateur en mode graphique |
6 | reboot.target | Redémarrage de l'ordinateur |
emergency | emergency.target | Mode de secours |
Par défaut, lorsque un gestionnaire de connexion est installé, la cible par défaut est graphical.target
. Pour changer la cible par défaut au démarrage :
systemctl
:systemctl set-default multi-user.target
boot:
:systemd.unit=multi-user.target
systemd-cgls
Cela va créer une arborescence qui permettra de faire le lien entre les services et les processus.
quelques outils intégré à systemd pour analyser le démarrage du système
temps simple du démarrage du système :
systemd-analyze
Startup finished in 1.456s (kernel) + 6.752s (userspace) = 8.208s
temps détaillé de démarrage du système :
systemd-analyze blame
1min 4.746s nmaj.service 5.427s exim4.service 386ms media-Divertissement.mount 177ms ModemManager.service 162ms keyboard-setup.service 115ms media-docs.mount 115ms accounts-daemon.service 97ms ufw.service 92ms rsyslog.service 85ms systemd-logind.service 84ms systemd-fsck@dev-disk-by\x2duuid-8a01a86d\x2d67be\x2d46d7\x2d821f\x2def50f7 84ms lm-sensors.service 82ms alsa-restore.service 81ms console-setup.service 78ms irqbalance.service 73ms systemd-fsck@dev-disk-by\x2duuid-BC47\x2d8202.service 72ms media-divers.mount 54ms networking.service 51ms systemd-resolved.service 44ms lightdm.service 43ms systemd-tmpfiles-setup-dev.service 38ms systemd-networkd.service 37ms kbd.service 32ms systemd-tmpfiles-clean.service 31ms user@1000.service 30ms systemd-fsck@dev-disk-by\x2duuid-bc2b1652\x2d35c6\x2d4688\x2db7d2\x2d11de53 27ms tmp.mount 26ms resolvconf.service 23ms polkitd.service 22ms systemd-setup-dgram-qlen.service 21ms udisks2.service 20ms systemd-backlight@backlight:acpi_video0.service 19ms systemd-udev-trigger.service 19ms home.mount 19ms dev-mqueue.mount 18ms systemd-random-seed.service 17ms sys-kernel-debug.mount 16ms user@110.service 16ms rdnssd.service 15ms hddtemp.service 14ms dev-hugepages.mount 14ms var.mount 13ms hdparm.service 13ms systemd-modules-load.service 13ms keymap.service 12ms systemd-user-sessions.service 11ms dev-disk-by\x2duuid-c67a739b\x2d917c\x2d4b33\x2dbf0d\x2dd72a0321d356.swap 10ms boot-efi.mount 10ms gdomap.service 9ms rc-local.service 9ms systemd-journal-flush.service 8ms systemd-remount-fs.service 8ms kmod-static-nodes.service 8ms dev-sda5.swap 7ms systemd-update-utmp.service 6ms systemd-sysctl.service 5ms systemd-tmpfiles-setup.service 4ms systemd-update-utmp-runlevel.service 4ms systemd-udevd.service 3ms rtkit-daemon.service 2ms sys-fs-fuse-connections.mount 1ms udev-finish.service
systemd-analyze plot > plot.svg
paquet : systemd-ui
apt-get install systemd-ui
Ce tuto vient très largement de Yopland ici: http://www.planet-libre.org/?post_id=18293