перезагрузка или «systemctl daemon-reload» для изменений в /etc/systemd/system.conf?

10

В CentOS-7 для изменения параметров в /etc/systemd/system.conf systemd требуется перезагрузка или будет достаточно "systemctl daemon-reload"?

Джефф Кубина
источник

Ответы:

15

Нет, daemon-reload перезагрузит все файлы модулей, а не конфигурацию для самой systemd. Однако, # systemctl daemon-reexecбудет повторно выполнять systemd и заставит его переварить свою новую конфигурацию в процессе.

Из справочной страницы 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.

Когда на странице руководства написано, что daemon-reexec полезен для обновлений пакетов, это в значительной степени означает, что эта команда выполняет все существующие новые двоичные файлы и повторно обрабатывает их конфигурации. ОДНАКО, RPM, который мы используем для обновления systemd, уже содержит скрипт для этого, поэтому он обычно не требуется в случае обычного обновления.

Или вы можете перезагрузиться. Либо подойдет.

шпульницы
источник
3
Обратите внимание, что RPM-пакет systemd включает скриптлет, который уже будет daemon-reexec при обновлении пакета, поэтому вам не нужно делать это вручную в такой ситуации.
Майкл Хэмптон
1
Почти единственная вещь, которая действительно нуждается в перезагрузке - это ядро. Большинство, если не все службы перезапускаются (если они уже были запущены) из сценариев RPM во время обновления с использованием systemctl try-restart.
Майкл Хэмптон
2
@MichaelHampton это действительно немного сложнее: обновления не только ядра, но и libc (а иногда и пользовательского устройства устройства отображения) также требуют полной перезагрузки. Конечно, вы можете
точно определить
1
@Motivation libc- это не служба, а библиотека GNU C, которая связана практически со всеми исполняемыми файлами Linux. Итак, после libcобновления вы должны перезапустить любую работающую программу / процесс; более простой способ - перезагрузить компьютер.
Shodanshok
1
@Mooted В ответе речь идет о скриптах в пакетах RPM, которые используются производными от Red Hat дистрибутивами, но не производными от Debian. Они используют разные методы упаковки, но также вызывают systemctl для перезапуска служб или самой systemd.
Майкл Хэмптон