Solution 1 :
Il existe deux alternatives pour que systemd crée des répertoires sous /var/run
/ /run
.
Généralement, le plus simple est de déclarer un RuntimeDirectory
dans le fichier unité de votre service. Exemple :
RuntimeDirectory=foo
Cela créera /var/run/foo
pour une unité système. (Remarque :NE PAS fournir de chemin d'accès complet, uniquement le chemin d'accès sous /var/run
) Pour la documentation complète, veuillez consulter l'entrée appropriée dans la documentation systemd.exec.
Pour les répertoires d'exécution qui nécessitent une configuration ou des garanties à vie plus complexes ou différentes, utilisez tmpfiles.d
et faites déposer votre colis dans un fichier /usr/lib/tmpfiles.d/mydaemon.conf
:
#Type Path Mode UID GID Age Argument d /run/mydaemon 0755 myuser myuser - -
Consultez la documentation complète de tmpfiles.d ici.
Solution 2 :
J'ai créé un service qui ferait le répertoire au démarrage :
vim /etc/systemd/system/mydaemon-helper.service
Le contenu de /etc/systemd/system/mydaemon-helper.service
:
[Unit]
Description=MyDaemon Helper Simple Service
After=network.target
[Service]
Type=simple
ExecStartPre=-/usr/bin/mkdir /var/run/mydaemon
ExecStart=/usr/bin/chown myuser:myuser /var/run/mydaemon
Restart=on-abort
[Install]
WantedBy=multi-user.target
Puis j'ai lancé ce service :
systemctl start mydaemon-helper
systemctl status mydaemon-helper
Sortie :
[[email protected] etc]# systemctl status mydaemon-helper.service
● mydaemon-helper.service - MyDaemon Helper Simple Service
Loaded: loaded (/etc/systemd/system/mydaemon-helper.service; disabled; vendor preset: disabled)
Active: inactive (dead)
May 28 20:53:50 alpha systemd[1]: Starting MyDaemon Helper Simple Service...
May 28 20:53:50 alpha systemd[1]: Started MyDaemon Helper Simple Service.
Enfin, j'ai dit au système de le charger au démarrage :
systemctl enable mydaemon-helper