Aller au contenu principal

Répertoire d’exécution et données persistantes

Complément ajouté dans la VM : /etc/systemd/system/lab-demo.service.d/runtime.conf.

[Service]
RuntimeDirectory=lab-demo
RuntimeDirectoryMode=0750

Pour une unité système, ce nom relatif désigne /run/lab-demo. systemd crée le dossier au démarrage avec le compte et le groupe du service, et le supprime à l’arrêt par défaut (RuntimeDirectoryPreserve=no). Le programme doit être configuré pour y écrire : ses fichiers temporaires n’y sont pas automatiquement redirigés. /run est habituellement en mémoire et vidé au redémarrage de la machine. Pour une unité utilisateur, le chemin est sous $XDG_RUNTIME_DIR, généralement /run/user/UID/.

Après création du complément, relecture et redémarrage, créer deux fichiers pour comparer leur cycle de vie :

sudo -u labdemo touch /run/lab-demo/test-runtime
sudo -u labdemo touch /var/lib/lab-demo/test-persistant
sudo systemctl stop lab-demo.service
sudo ls -ld /run/lab-demo
sudo ls -l /var/lib/lab-demo/test-persistant

Le répertoire /run/lab-demo doit avoir disparu après l’arrêt, tandis que /var/lib/lab-demo/test-persistant reste présent si StateDirectory=lab-demo est configuré. Redémarrer le service puis vérifier les deux emplacements :

sudo systemctl start lab-demo.service
sudo ls -ld /run/lab-demo
sudo ls -l /var/lib/lab-demo/test-persistant

Le répertoire d’exécution est recréé, sans l’ancien fichier temporaire. Le fichier persistant conserve son contenu et son propriétaire. Après vérification, supprimer uniquement le fichier créé pour cet exemple : sudo -u labdemo rm /var/lib/lab-demo/test-persistant.