Estou tentando reiniciar os serviços após um yum update
no RHEL 7.4. needs-restarting
Eu poderia reiniciar todos os serviços usando systemctl, mas yum utils
me diz que também devo reiniciar o próprio systemd:
# needs-restarting
1 : /usr/lib/systemd/systemd --system --deserialize 21
Posso reiniciar systemd
sem reiniciar o servidor e como?
Encontrei algumas menções a systemctl daemon-reload
, mas isso não o faz desaparecer da lista de necessidade de reinicialização.
Para reiniciar o daemon, execute
Isso está documentado na página de
systemctl
manual :Infelizmente
needs-restarting
, não é possível determinar quesystemd
foi realmente reiniciado.systemd
execs
ele mesmo para reiniciar, o que não redefine a hora de início do processo; masneeds-restarting
compara o tempo de modificação do executável com o tempo de início do processo para determinar se um processo precisa ser reiniciado (entre outras coisas), e como resultado ele sempre considera quesystemd
precisa ser reiniciado... Para determinar sesystemd
realmente precisa ser reiniciado, você pode verificar a saída delsof -p1 | grep deleted
:systemd
usa uma biblioteca,libsystemd-shared
que é enviada no mesmo pacote e, portanto, atualizada junto com o daemon; portanto, sesystemd
precisar ser reiniciado, você o verá usando uma versão excluída da biblioteca. Selsof
não mostrar arquivos excluídos,systemd
não precisa ser reiniciado. (Graças aJeff Schaller pela dica!)No meu caso, acabei de atualizar
systemd
e qualquersystemctl
comando estava falhando:Porém de acordo com a
init
manpage, você pode fazer a mesma coisa enviandoSIGTERM
para o daemon rodando como PID 1, que funcionou:Isso recarregou o daemon, após o que todos os
systemctl
comandos começaram a funcionar novamente.