reinicialize ou “systemctl daemon-reload” para alterações em /etc/systemd/system.conf?

10

No CentOS-7, uma alteração nas opções em /etc/systemd/system.conf do systemd requer uma reinicialização ou "systemctl daemon-reload" será suficiente?

Jeff Kubina
fonte

Respostas:

15

Não, o daemon-reload recarregará todos os arquivos da unidade, não a configuração do systemd em si. No entanto, # systemctl daemon-reexecreexecutará o systemd e fará com que ele comporte sua nova configuração no processo.

Na página de manual 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.

Quando a página de manual diz que o daemon-reexec é útil para atualizações de pacotes, significa em grande parte que este comando executa quaisquer novos binários existentes e reprocessa suas configurações. NO ENTANTO, o RPM que usamos para atualizar o systemd já contém um script para fazer isso, portanto geralmente nunca é necessário no caso de uma atualização normal.

Ou você pode reiniciar. Qualquer um serve.

Spooler
fonte
3
Observe que o pacote RPM systemd inclui um scriptlet que já será daemon-reexec quando o pacote for atualizado, portanto, você não precisa fazer isso manualmente nessa situação.
Michael Hampton
1
A única coisa que realmente precisa de uma reinicialização é o kernel. A maioria, se não todos, os serviços são reiniciados automaticamente (se já estiverem em execução) a partir dos scripts RPM durante o upgrade usando systemctl try-restart.
Michael Hampton
2
@MichaelHampton é realmente um pouco mais complicado: não apenas as atualizações do kernel, mas também da libc (e, às vezes, do usuário do mapeador de dispositivos) também exigem uma reinicialização completa. Claro, você pode pin-point e reinicie cada um dos serviços afetados, mas como, basicamente, todos os serviços estão ligadas contra libc, bem, é geralmente mais rápido para reiniciar ...
shodanshok
1
O @Motivated libcnão é um serviço, mas a GNU C Library, que é vinculada por quase todos os executáveis ​​do linux. Portanto, após uma libcatualização, você deve reiniciar qualquer programa / processo em execução; o método mais fácil é reiniciar a máquina.
Shodanshok,
1
@Motivated A resposta está falando de scripts em pacotes RPM, que são usados ​​por distribuições derivadas da Red Hat, mas não por distribuições derivadas do Debian. Eles usam métodos de empacotamento diferentes, mas também chamam systemctl para reiniciar os serviços ou o próprio systemd.
Michael Hampton