Systemd remplace sur la plupart des distribution récentes l'init System V.
Systemd remplace des commandes permettant de gérer les services (chkconfig et service) par systemctl ; par exemple pour démarrer/stopper le service “network” :
systemctl start network[.service]
reload/restart pour recharger les fichiers de configuration ou l'ensemble du serviceenable/disable pour activer ou désactiver un service au démarragestatus/is-active/is-failed pour afficher l'état du servicehalt/poweroff/reboot/suspend/hibernatesystemctl list-units : lister les services.systemctl get-default/set-default : afficher/modifier le runlevel par défaut du système (NB : afficher le runlevel courant : who -r)systemctl isolate <RUNLEVEL> modifier le runlevel courant, avec <RUNLEVEL> parmi :runlevel0.target = poweroff.target runlevel1.target = rescue.target runlevel2.target = runlevel4.target runlevel3.target = multi-user.target runlevel5.target = graphical.target runlevel6.target = reboot.target
systemctl cat networking : afficher le fichier de configuration Systemd du service ; celui-ci est situé, sous Debian 9, dans /lib/systemd/systemsystemctl show networking : afficher l'état du lancement du servicesystemd-analyze : mesurer le temps de démarragesystemd-analyze critical-chainsystemd-analyze plot > systemd.svg : génère un graphique du démarrage
journalctl permet d'afficher les logs systemd, qui sont enregistrés en binaire à la différence du rsyslog traditionnel. Il peut s'utiliser avec les options suivantes :
-f (–follow): pour afficher le journal en temps réel (~= tail -f)-e (–pager-end): pour afficher les derniers -u <service> (–unit=<UNIT>) : pour n'afficher que le journal de <service>-k (–dmesg): affiche le journal du kernel-n <NB> (–lines=<NB>): affiche les NB derniers messages-x (–catalog): affiche les explications supplémentaires du catalogue de messages# afficher l'espace disque occupé par les journaux: journalctl --disk-usage Archived and active journals take up 1.4G in the file system. # vérifier l'intégrité des journaux journalctl --verify
systemd-resolved est le sous-service systemd gérant la résolution DNS. Le fichier historique /etc/resolved.conf contient l'unique résolveur local (“stub resolver”) 127.0.0.53 ; pour connaitre le résolveur externe vers lequel seront relayées les requêtes DNS de la machine il faut utiliser la commande resolvectl status.
Pour modifier ce dernier il faut éditer le fichier /etc/systemd/resolved.conf ou créer un fichier drop-ins :
DNS=192.168.1.1#perso1 192.168.1.2#perso2 FallbackDNS=8.8.8.8#google
Puis relancer le démon et revérifier l'état :
systemctl restart systemd-resolved
resolvectl status
Global
Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
DNS Servers: 192.168.1.1#perso1
Link 2 (enp1s0)
Current Scopes: DNS
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
DNS Servers: 192.168.1.1
DNS Domain: pteu.fr
Pour désactiver le stub-resolver DNS et libérer le port UDP/53 de la machine, ajouter cette ligne :
DNSStubListener=no
et redémarrer le service sudo systemctl restart systemd-resolved, ce qui restaurera le resolv.conf historique :
nameserver 192.168.1.1 nameserver 192.168.1.2 search pteu.fr