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/hibernate
systemctl 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/system
systemctl show networking
: afficher l'état du lancement du servicesystemd-analyze
: mesurer le temps de démarragesystemd-analyze critical-chain
systemd-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
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