User Tools

Site Tools


informatique:linux:systemd

Reminder Systemd

Systemd remplace sur la plupart des distribution récentes l'init System V.

systemctl

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 service
  • enable/disable pour activer ou désactiver un service au démarrage
  • status/is-active/is-failed pour afficher l'état du service
  • halt/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 service
  • systemd-analyze : mesurer le temps de démarrage
  • systemd-analyze critical-chain
  • systemd-analyze plot > systemd.svg : génère un graphique du démarrage

journalctl

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

Documentation

resolved

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 :

/etc/systemd/resolved.conf.d/DNSperso.conf
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 :

/etc/systemd/resolved.conf.d/DNSperso.conf
DNSStubListener=no

et redémarrer le service sudo systemctl restart systemd-resolved, ce qui restaurera le resolv.conf historique :

/etc/resolv.conf
nameserver 192.168.1.1
nameserver 192.168.1.2
search pteu.fr
informatique/linux/systemd.txt · Last modified: 2024/08/31 13:24 by pteu