Para reiniciar o daemon, execute
systemctl daemon-reexec
Isso está documentado na página de systemctl
manual :
Execute novamente o gerenciador do systemd. Isso serializa o estado do gerente, reexecuta o processo e desserializa o estado novamente. Este comando é de pouca utilidade, exceto para depuração e atualizações de pacotes. Às vezes, pode ser útil como um peso pesado daemon-reload
. Enquanto o daemon estiver sendo reexecutado, todos os soquetes do sistema que estiverem ouvindo em nome da configuração do usuário permanecerão acessíveis.
Infelizmente, needs-restarting
não é possível determinar que systemd
realmente foi reiniciado. systemd
execs
reiniciar, o que não redefine a hora de início do processo; mas needs-restarting
compara o tempo de modificação do executável com o horário de início do processo para determinar se um processo precisa ser reiniciado (entre outras coisas) e, como resultado, ele sempre considera que systemd
precisa ser reiniciado ... Para determinar se systemd
realmente precisa ser reiniciado, você pode verificar a saída de lsof -p1 | grep deleted
: systemd
uses a library, libsystemd-shared
que é enviada no mesmo pacote e, portanto, é atualizada juntamente com o daemon; portanto, se systemd
precisar ser reiniciado, você a verá usando uma versão excluída da biblioteca. Se lsof
não mostrar arquivos excluídos, systemd
não precisará ser reiniciado. (Graças aJeff Schaller pela dica!)
daemon-reexec
é suposto para trabalhar mesmo comsystemd
como pid 1.