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