Vérifier la santé des disques, les commandes diffères en fontion d’un SSD et d’un NVME
Conteneurs en tant que service
Création de fichiers utilisateur systemd pour les conteneurs
Il est possible de définir manuellement les services systemd
dans le répertoire ~/.config/ systemd/user/
.
La commande podman generate systemd
permet de configurer le service systemd
afin de créer le conteneur lorsque le service démarre :
$ podman generate systemd --name mywebserver |
ExecStart
:systemd
exécute la commandepodman start
pour démarrer le conteneur existantExecStop
:systemd
exécute la commandepodman stop
pour arrêter le conteneur (le conteneur ne sera PAS supprimé)ExecStopPost
:systemd
rappelle la commande si le service n’a pas démarré correctement ou est arrété
La commande podman generate systemd
permet de configurer le service systemd
afin de créer le conteneur lorsque le service démarre, et de supprimer le conteneur lorsque le service s’arrête avec l’option --new
:
$ podman generate systemd --name mywebserver --new |
ExecStart
:systemd
exécute la commandepodman run
pour créer et démarrer le nouveau conteneur puis lance unpodman run --rm
ExecStop
:systemd
exécute la commandepodman stop
pour arrêter le conteneurExecStopPost
:systemd
appelle la commandepodman rm -f
quand le service est arrété
La commande podman generate systemd
avec l’option --files
permet de créer le fichier utilisateur systemd
dans le répertoire actuel et comme le stockage est persistant ici, il faut également préciser --new
:
$ podman generate systemd --name mywebserver --new --files |
Création du répertoire ~/.config/systemd/user/
:
$ mkdir -p ~/.config/systemd/user/ |
Déplacement vers un nouvel emplacement :
$ mv container-mywebserver.service ~/.config/systemd/user/ |
Gestion des fichiers utilisateur systemd pour les conteneurs
L’option --user
de la commande systemctl
permet de gérer le conteneur mywebserver avec un nouvel utilisateur :
$ systemctl --user daemon-reload |
$ systemctl --user start container-mywebserver.service |
$ systemctl --user status container-mywebserver.service |
$ podman ps |
Note : Si un conteneur est configuré avec systemd, ce dernier surveille l’état du conteneur et le redémarre en cas de défaillance. Il ne faut PAS utiliser la commande podman
pour démarrer ou arrêter ce conteneurs (conflit)
Gestion des conteneurs en root avec systemd
Les fichiers de service pfonctionnent comme des fichiers d’unité systemd courants (ps comme un utilisateur particulier).
Exceptions :
- Ne pas faire un utilisateur dédié pour la gestion des conteneurs
- Le fichier de service doit se placer dans
/etc/systemd/system
et pas dans~/.config/systemd/user
- Commande
systemctl
sans l’option--user
- Ne pas exécuter
loginctl enable-linger
en tant que root
Comparaison entre les services système et utilisateur
Résumé des répertoires et commandes utiliseés entre les services système et utilisateur systemd :
x | Services système | Services d’utilisateurs |
---|---|---|
Stockage des fichiers d’unité personnalisés | /etc/systemd/system/unit.service |
~/.config/systemd/user/unit.service |
Rechargement des fichiers d’unité | # systemctl daemon-reload |
$ systemctl --user daemon-reload |
Démarrage et arrêt d’un service | # systemctl start UNIT # systemctl stop UNIT |
$ systemctl --user start UNIT $ systemctl --user stop UNIT |
Démarrage d’un service lors du démarrage de la machine | # systemctl enable UNIT |
$ loginctl enable-linger $ systemctl --user enable UNIT |
Conteneurs lancés au démarrage
La commande loginctl enable-linger
permet au service de démarrer en même temps que le système et de rester persistant lorsque l’utilisateur se déconnecte :
$ loginctl show-user john-adm |
$ loginctl enable-linger |
$ loginctl show-user john-adm |
Pour annuler l’opération : loginctl disable-linger
.
EMOJI resume cmd
Documentation
MAN loginctl(1)
MAN systemd.unit(5)
MAN systemd.service(5)
MAN subuid(5)
MAN podman-generate-systemd(1)