redémarrer ou «systemctl daemon-reload» pour les modifications apportées à /etc/systemd/system.conf?

10

Dans CentOS-7, une modification des options dans /etc/systemd/system.conf de systemd nécessite-t-elle un redémarrage ou "systemctl daemon-reload" suffira-t-il?

Jeff Kubina
la source

Réponses:

15

Non, daemon-reload rechargera tous les fichiers d'unité, pas la configuration de systemd elle-même. Cependant, # systemctl daemon-reexecréexécutera systemd et le fera digérer sa nouvelle configuration dans le processus.

Depuis la page de manuel systemctl:

daemon-reexec
       Reexecute the systemd manager. This will serialize the manager
       state, reexecute the process and deserialize the state again. This
       command is of little use except for debugging and package upgrades.
       Sometimes, it might be helpful as a heavy-weight daemon-reload.
       While the daemon is being reexecuted, all sockets systemd listening
       on behalf of user configuration will stay accessible.

Lorsque la page de manuel indique que daemon-reexec est utile pour les mises à niveau de packages, cela signifie en grande partie que cette commande exécute les nouveaux binaires existants et retire ses configurations. CEPENDANT, le RPM que nous utilisons pour mettre à niveau systemd contient déjà un script pour ce faire, il n'est donc généralement pas nécessaire dans le cas d'une mise à niveau normale.

Ou vous pouvez redémarrer. Soit fera l'affaire.

Spouleur
la source
3
Notez que le package RPM systemd comprend un scriptlet qui sera déjà daemon-reexec lorsque le package est mis à niveau, vous n'avez donc pas besoin de le faire manuellement dans cette situation.
Michael Hampton
1
À peu près la seule chose qui a vraiment besoin d'un redémarrage est le noyau. La plupart des services, sinon tous, se redémarrent (s'ils étaient déjà en cours d'exécution) à partir des scripts RPM lors de la mise à niveau systemctl try-restart.
Michael Hampton
2
@MichaelHampton, c'est vraiment un peu plus compliqué: non seulement les mises à jour du noyau, mais aussi celles de libc (et, parfois, du mappeur de périphériques) nécessitent un redémarrage complet. Bien sûr, vous pouvez localiser et redémarrer chaque service affecté, mais comme tous les services sont liés à libc, eh bien, il est généralement plus rapide de redémarrer ...
shodanshok
1
@Motivated libcn'est pas un service, mais plutôt la bibliothèque GNU C, qui est liée par presque tous les exécutables Linux. Ainsi, après une libcmise à niveau, vous devez redémarrer tout programme / processus en cours d'exécution; la méthode la plus simple consiste à redémarrer la machine.
shodanshok
1
@Motivated La réponse parle de scripts dans les packages RPM, qui sont utilisés par les distributions dérivées de Red Hat, mais pas par les distributions dérivées de Debian. Ceux-ci utilisent différentes méthodes de packaging, mais appellent également systemctl pour redémarrer les services ou systemd lui-même.
Michael Hampton