======Reminder Systemd======
[[https://fr.wikipedia.org/wiki/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 '' modifier le runlevel courant, avec 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 '' (''--unit='') : pour n'afficher que le journal de
* ''-k'' (''--dmesg''): affiche le journal du kernel
* ''-n '' (''--lines=''): affiche les NB derniers messages
====Documentation====
* [[https://stackoverflow.com/questions/23082512/how-should-i-handle-remote-logging-with-systemd|How should I handle remote logging with systemd?]]
* [[https://stackoverflow.com/questions/70382088/exporting-logs-using-journald-rsyslogd|Exporting logs using journald / rsyslogd]]
=====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// :
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