Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ceci est une ancienne révision du document !
* auteur: {{lagrenouille}} * Objet : du tuto gestionnaire de système et de services pour Linux. * Niveau requis : {{tag>débutant avisé}} * Commentaires : //Contexte d'utilisation du sujet du tuto. // FIXME * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
systemd est un gestionnaire de système et de services pour Linux. Il est le système d’init par défaut dans Debian depuis Jessie.
Systemd est compatible avec les scripts d’init SysV et LSB. Il peut fonctionner comme un remplaçant de sysvinit.
Systemd :systemd (voir systemd-boot) s’appelait avant “gummibot”Le Micrologiciel : Lorsque matériellement vous allumez votre ordinateur, c’est le premier programme à s’exécuter. En anglais on parle de firmware.
Astuce : On parle rarement de micro-logiciel, (et quelque soit son genre), on dira souvent BIOS par abus de langage
* BIOS, soit Basic Input Output System / Le système élémentaire des entrées et sortie
systemctl status systemd-journald
● systemd-journald.service - Journal Service Loaded: loaded (/lib/systemd/system/systemd-journald.service; static) Active: active (running) since Wed 2023-04-12 18:22:15 CEST; 6 days ago TriggeredBy: ● systemd-journald-audit.socket ● systemd-journald-dev-log.socket ● systemd-journald.socket Docs: man:systemd-journald.service(8) man:journald.conf(5) Main PID: 488 (systemd-journal) Status: "Processing requests..." Tasks: 1 (limit: 38366) Memory: 146.1M CPU: 2min 3.897s CGroup: /system.slice/systemd-journald.service └─488 /lib/systemd/systemd-journald avril 12 18:22:15 lebug systemd-journald[488]: Journal started avril 12 18:22:15 lebug systemd-journald[488]: Runtime Journal (/run/log/journal/ba457e39339a453aa2cfa330d4a3> avril 12 18:22:15 lebug systemd-journald[488]: Time spent on flushing to /var/log/journal/ba457e39339a453aa2c> avril 12 18:22:15 lebug systemd-journald[488]: System Journal (/var/log/journal/ba457e39339a453aa2cfa330d4a3a> Warning: journal has been rotated since unit was started, output may be incomplete. lines 1-21/21 (END)
* systemd (pour « system daemon * systemd se manipule grâce à la commande “systemctl”. * On utilisera le répertoire /etc/systemd/system pour stocker ses modifications et configurations personnelles, ce qui a le gros avantage que ces fichiers ne seront pas effacés en cas de mise à jour du système.
Les unités La configuration de Systemd se base sur des unités (units) qui ont un nom et un type. Ainsi, le fichier NetworkManager.service définira l’unité de type service qui s’occupe de la gestion réseau ; de même, systemd-shutdownd.socket définira la socket pour l’arrêt. La commande suivante vous listera les unités disponibles sur votre système :
systemctl -t help
Pour lister toutes les unités présentes sur le système, on fera
systemctl list-units
La commande systemd-analyze blame, permet de lister le temps de démarrage des différents services. C’est assez pratique pour déterminer le ou les services qui mettent du temps à se lancer. si je veux voir l’état du service ssh le service systemd est il en cours d’exécution, je vérifie en tapant
systemctl status systemd-journald
● systemd-journald.service - Journal Service Loaded: loaded (/lib/systemd/system/systemd-journald.service; static; vendor preset: enabled) Active: active (running) since Sun 2018-06-17 07:44:12 CEST; 1 day 16h ago Docs: man:systemd-journald.service(8) man:journald.conf(5) Main PID: 199 (systemd-journal) Status: "Processing requests..." Tasks: 1 (limit: 4915) CGroup: /system.slice/systemd-journald.service └─199 /lib/systemd/systemd-journald
* systemd (pour « system daemon »
* systemd se manipule grâce à la commande “systemctl”.
* On utilisera le répertoire /etc/systemd/system pour stocker ses modifications et configurations personnelles, ce qui a le gros avantage que ces fichiers ne seront pas effacés en cas de mise à jour du système. Les unités
La configuration de Systemd se base sur des unités (units) qui ont un nom et un type. Ainsi, le fichier NetworkManager.service
définira l’unité de type service qui s’occupe de la gestion réseau ; de même, systemd-shutdownd.socket définira la socket pour l’arrêt.
La commande suivante vous listera les unités disponibles sur votre système :
Pour lister toutes les unités présentes sur le système, on fera
systemctl list-units
La commande systemd-analyze blame, permet de lister le temps de démarrage des différents services.
C’est assez pratique pour déterminer le ou les services qui mettent du temps à se lancer.
si je veux voir l’état du service ssh
systemctl status sshd
● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2018-06-17 07:44:22 CEST; 1 day 16h ago Process: 928 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS) Process: 923 ExecReload=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS) Process: 648 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS) Main PID: 688 (sshd) Tasks: 1 (limit: 4915) CGroup: /system.slice/ssh.service └─688 /usr/sbin/sshd -D
Pour configurer un service pour qu'il soit lancé automatiquement au démarrage du système, utiliser la commande :
systemctl enable nom_du_service.service
Désactiver un service au démarrage
systemctl disable nom_du_service.service
Pour connaître le statut d'un service, utiliser la commande :
exemple pour sshd
sudo systemctl is-active sshd.service
active.
Services activé :
systemctl list-unit-files | grep enabled
Services démarrés en ce moment :
systemctl | grep running
Repérer les services inutiles Pour cela, pas de recette miracle.
les principales commandes
systemctl
Affiche les 5 derniers lignes.
journalctl -n 5
systemctl status
systemctl --failed
journalctl -r -p err
journalctl -q
journalctl -p emerg
journalctl -p alert
journalctl -p crit
journalctl -p warning
journalctl -p notice
journalctl -p info
journalctl -p debug
Afficher les logs du démarrage
journalctl -b
Afficher les logs à partir de 21:00
journalctl - -since 21:00
Afficher les logs depuis hier
journalctl - -since yesterday
#journalctl –since “8 hours ago”
Afficher les logs de temps à temps
journalctl sudo journalctl --since "2022-12-25 18:00" --until "2022-12-26 12:30"
Pour afficher l’enregistrement des journaux du noyau, exécutez
journalctl -k
Afficher en temps réelle
journalctl -f
ces commandes vous amèneront à d’autres commandes, suivant les erreurs rencontrées.
démarrer un service systemd.
systemctl start application.service
systemctl stop application .service
Pour redémarrer un service en cours d’exécution
systemctl restart application .service
systemctl reload application .service
Si vous ne savez pas si le service intègre la fonctionnalité qui lui permet de recharger sa configuration,
vous pouvez lancer la commande reload-or-restart Si disponible, vous rechargerez la configuration en
place. Sinon, le service redémarrera pour récupérer la nouvelle configuration :
systemctl reload-or-restart application .service
Les commandes ci-dessus vous seront utiles pour démarrer ou arrêter des services pendant la session
en cours. Vous devez les activer pour demander à systemd de lancer automatiquement les services au démarrage.
systemctl enable application .service
Cela créera un lien symbolique à partir de la copie du fichier de service du système
Pour désactiver le démarrage automatique d’un service, vous pouvez saisir :
systemctl disable application .service
Cela supprimera le lien symbolique
Pour vérifier l’état d’un service sur votre système.
systemctl status application .service
systemctl status apache
apache2.service apache-htcacheclean.service lagrenouille@lebug:~$ systemctl status apache2.service ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2022-08-26 08:57:16 CEST; 1 weeks 3 days ago Docs: https://httpd.apache.org/docs/2.4/ Process: 1073 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Process: 742043 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS) Main PID: 1328 (apache2) Tasks: 11 (limit: 38369) Memory: 16.3G CPU: 8min 30.341s CGroup: /system.slice/apache2.service ├─ 1328 /usr/sbin/apache2 -k start ├─742049 /usr/sbin/apache2 -k start ├─742053 /usr/sbin/apache2 -k start ├─742061 /usr/sbin/apache2 -k start ├─742078 /usr/sbin/apache2 -k start ├─742080 /usr/sbin/apache2 -k start ├─742081 /usr/sbin/apache2 -k start ├─743437 /usr/sbin/apache2 -k start ├─744516 /usr/sbin/apache2 -k start ├─745385 /usr/sbin/apache2 -k start └─745386 /usr/sbin/apache2 -k start
si vous souhaitez vérifier si une unité est actuellement active
systemctl is-active application .service
systemctl is-active mysql
active
les options de la commande
systemctl list-units
La sortie affiche les colonnes suivantes :
UNIT: le nom de l’unité systemd
LOAD si la configuration de l’unité a été analysée par systemd . La configuration des unités chargées est gardée en mémoire.
ACTIVE: un état résumé indiquant si l’unité est active. Il s’agit généralement d’une méthode assez simple d’établir si l’unité a bien démarré ou pas.
SUB: il s’agit d’un état de niveau inférieur qui donne des informations plus détaillées sur l’unité. Il • varie souvent en fonction du type, de l’état et du mode de fonctionnement réel de l’unité.
DESRIPTION: une courte description textuelle de ce que l’unité est et fait.
Pour afficher le fichier de l’unité que systemd a chargé sur son système, vous pouvez utiliser la
commande cat qui a été ajoutée dans la version 209 de systemd ). Par exemple, pour voir le fichier de l’unité de démon de planification atd , nous pourrions saisir :