| Next revision | Previous revision |
| informatique:linux:systemd [2018/02/06 15:05] – créée pteu | informatique:linux:systemd [2025/09/10 13:15] (current) – [journalctl] pteu |
|---|
| [[https://fr.wikipedia.org/wiki/Systemd|Systemd]] remplace sur la plupart des distribution récentes l'init System V. | [[https://fr.wikipedia.org/wiki/Systemd|Systemd]] remplace sur la plupart des distribution récentes l'init System V. |
| |
| * il remplace des commandes permettant de gérer les services (''chkconfig'' et ''service'') par ''systemctl'' ; par exemple pour démarrer/stopper le service "network" : | |
| | =====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" : |
| <code bash> | <code bash> |
| systemctl start network[.service] | systemctl start network[.service] |
| * ''systemd-analyze critical-chain'' | * ''systemd-analyze critical-chain'' |
| * ''systemd-analyze plot > systemd.svg'' : génère un graphique du démarrage | * ''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 |
| | * ''-x'' (''--catalog''): affiche les explications supplémentaires du catalogue de messages |
| | |
| | <code bash> |
| | # 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 |
| | </code> |
| | |
| | |
| | ====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// : |
| | <file bash /etc/systemd/resolved.conf.d/DNSperso.conf> |
| | DNS=192.168.1.1#perso1 192.168.1.2#perso2 |
| | FallbackDNS=8.8.8.8#google |
| | </file> |
| | |
| | Puis relancer le démon et revérifier l'état : |
| | <code bash> |
| | 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 |
| | </code> |
| | |
| | Pour désactiver le //stub-resolver DNS// et libérer le port UDP/53 de la machine, ajouter cette ligne : |
| | <file bash /etc/systemd/resolved.conf.d/DNSperso.conf> |
| | DNSStubListener=no |
| | </file> |
| | et redémarrer le service ''sudo systemctl restart systemd-resolved'', ce qui restaurera le resolv.conf historique : |
| | <file bash /etc/resolv.conf> |
| | nameserver 192.168.1.1 |
| | nameserver 192.168.1.2 |
| | search pteu.fr |
| | </file> |