yum update
RHEL 7.4에서 서비스를 다시 시작 하려고 합니다 . systemctl을 사용하여 각 서비스를 다시 시작할 수 있지만 systemd 자체도 다시 시작해야 한다는 메시지 needs-restarting
가 표시됩니다.yum utils
# needs-restarting
1 : /usr/lib/systemd/systemd --system --deserialize 21
systemd
서버를 다시 시작하지 않고 다시 시작할 수 있나요 ? 어떻게?
몇 가지 언급을 찾았 systemctl daemon-reload
지만 재부팅해야 할 필요성 목록에서 벗어나지는 않았습니다.
답변1
데몬을 다시 시작하려면 다음을 실행하세요.
systemctl daemon-reexec
이 내용은 다음과 같이 기록됩니다.systemctl
맨페이지:
시스템 관리자를 다시 실행하십시오. 그러면 관리자 상태가 직렬화되고 프로세스가 다시 실행되며 상태가 다시 역직렬화됩니다. 이 명령은 디버깅 및 패키지 업그레이드를 제외하고는 거의 사용되지 않습니다. 때로는 헤비급 선수가 되는 것이 도움이 될 수 있습니다
daemon-reload
. 데몬이 다시 실행되면 사용자를 대신하여 수신하도록 구성된 모든 시스템 소켓에 계속 액세스할 수 있습니다.
불행히도 실제로 다시 시작 needs-restarting
되는지 알 수 있는 방법이 없습니다 systemd
. systemd
execs
자체적으로 다시 시작됩니다. 이는 프로세스의 시작 시간을 재설정하지 않지만 needs-restarting
실행 파일의 수정 시간을 프로세스의 시작 시간과 비교하여 무엇보다도 프로세스를 다시 시작해야 하는지 결정하므로 항상 systemd
다시 시작이 필요한 것으로 간주합니다. 다시 시작해야 하는지 확인하려면 다음 을 systemd
확인하세요 lsof -p1 | grep deleted
. 삭제된 버전의 . 삭제된 파일이 없다고 표시 되면 재부팅할 필요가 없습니다. (감사해요systemd
libsystemd-shared
systemd
lsof
systemd
제프 샬러팁을 위해! )
답변2
제 경우에는 방금 업그레이드했는데 systemd
모든 systemctl
명령이 실패했습니다.
# systemctl daemon-reexec
Failed to reload daemon: Access denied
# systemctl status
Failed to read server status: Access denied
그러나 맨페이지에 따르면 init
PID 1로 실행되는 데몬에 전송하여 동일한 작업을 수행할 수 있습니다. 이는 작동합니다.SIGTERM
kill -TERM 1
이렇게 하면 데몬이 다시 로드되고 그 후에는 모든 systemctl
명령이 다시 작동하기 시작합니다.