Question Les fichiers d'unité systemd doivent-ils être rechargés lorsqu'ils sont modifiés?


Disons que j'écris un mine.service fichier. Ensuite j'utilise systemctl enable mine.service.

Si je décide plus tard de modifier mine.service, dois-je dire systemd cette mine.service a été changé? Si oui, comment je fais ça?


94
2018-06-23 03:17


origine




Réponses:


Après avoir modifié votre fichier d’unité, vous devez exécuter systemctl daemon-reload, comme souligné ici.

démon-reload
  Rechargez la configuration du gestionnaire systemd. Ceci relance tous les générateurs (voir systemd.generator (7)), rechargez tous les fichiers d’unités et recréez l’ensemble de l’arbre des dépendances. Pendant le rechargement du démon, tous les sockets que systemd écoute au nom de la configuration de l'utilisateur resteront accessibles.

Vous pouvez ensuite redémarrer (ou recharger) votre service comme vous le souhaitez avec

systemctl restart your-service-name

(daemon-reload ne rechargera pas / ne redémarrera pas les services eux-mêmes, il informera simplement systemd de la nouvelle configuration)


113
2018-06-23 11:38



J'ai trouvé que j'avais aussi besoin de courir un systemctl restart pour redémarrer le service lui-même ... - hwjp
Au cas où, daemon-reload n'est pas universel, doit courir systemctl --user daemon-reload pour les services utilisateurs. - Olegs Jeremejevs


En complément de la réponse ci-dessus: si vous avez modifié quelque chose dans le [Install] directive, vous devrez peut-être exécuter sudo systemctl reenable YOURUNITFILE afin de recréer les liens symboliques dans les répertoires .target.


1
2017-08-19 13:01



Cela a fait le tour pour moi! Je ne comprenais pas pourquoi systemctl ne rechargeait pas le fichier de service. - antonagestam