======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