커널을 업그레이드하는 것 외에도 Linux 시스템을 다시 시작하려면 어떤 변경이 필요합니까? 재부팅하면 작업이 더 쉬워지는 경우도 있지만 재부팅 외에는 할 수 없는 상황도 있나요?
명확히 하자면, 저는 하드웨어 오류를 겪지 않은 일반적인 데스크탑이나 서버 시스템을 생각하고 있습니다.
답변1
마음에 떠오른 몇 가지 사항:
다음에서 복구커널 패닉
정의에 따르면 커널 패닉은 커널을 다시 시작하지 않으면 복구할 수 없습니다.
터미널에 액세스할 수 없는 중단 복구
시스템이 응답하지 않고 복원 명령을 실행할 수 없는 경우 할 수 있는 유일한 작업은 재부팅뿐입니다. 일반적으로 수동으로 전원을 껐다 켜는 것을 피하려고 합니다. 이러한 경우 Linux 커널에는마법 시스템 요청긴급 상황 발생 시 기기를 다시 시작할 수 있도록 지원이 제공됩니다.
CONFIG_MAGIC_SYSRQ
커널 구성에서 옵션이 활성화되어 있는 한kernel.sysrq
sysctl
옵션이 활성화되면 마법의 SysRq 키 조합을 사용하여 커널에 직접 명령을 실행할 수 있습니다.아래의 Alt+ SysRq표현에 유의하세요.길게 눌러 Alt, 그 다음에길게 눌러 SysRq(보통 PrintScrn열쇠).
- Alt+ SysRq+ r: 키보드 제어권 회복
- Alt+ SysRq+ e:
SIGTERM
제외한 모든 프로세스init
에 전송됩니다. - Alt+ SysRq+ i:
SIGKILL
제외한 모든 프로세스init
에 전송됩니다. - Alt+ SysRq+ s: 마운트된 모든 파일 시스템을 동기화하려고 시도합니다.
- Alt+ SysRq+ u: 모든 파일 시스템을 읽기 전용으로 다시 마운트
Alt+ SysRq+ b: 다시 시작 또는
Alt+ SysRq+ o: 종료
정상적인 재시작을 시도하는 데 사용되는 마법의 SysRq 키 조합에 대한 니모닉은 다음과 같습니다.
"오른쪽전자 안내 두번째기예 나에프 에스체계 유테리 직물 두번째바위"
헤드리스 서버의 경우iptables 대상네트워크를 통해 원격 SysRq 시퀀스를 활성화합니다.
부팅할 수 없는 상태에서 복구
시스템이 제대로 부팅할 수 없는 상태에 들어간 경우(예: 시스템 업그레이드 실패, 파일 시스템 손상 등으로 인해) 시스템의 복구 콘솔에 액세스할 수 있는 유일한 방법은 다음을 사용하여 재부팅하는 것입니다. 적절한 부팅 시간 옵션.
부팅 시 커널 매개변수 변경
일부커널 매개변수(예:
audit
커널 감사 활성화/비활성화)는 부팅 시 커널이 로드될 때만 설정할 수 있습니다.
답변2
다시 시작하고 싶은 경우가 두 번 있습니다.
시스템이 올바른 상태에서 시작되는지 확인해야 할 때.
나는 런타임에 일부 데몬이 구성된 시스템에서 작업한 적이 있습니다. 몇 년 동안 실행한 후 정전으로 인해 재부팅되었지만 데몬은 시작 프로세스의 일부가 아니었고 몇 년 전에는 데몬이 어떻게 구성되었는지 아는 사람이 아무도 없었습니다. 시스템을 재구성하는 동안 며칠 동안 시스템이 다운되었습니다.
실제로 재부팅은 정전 후 시스템이 제대로 다시 시작되는지 확인하는 유일한 방법입니다.
시스템 라이브러리가 업데이트되는 경우.
시스템의 많은 애플리케이션/서버와 공유되는 라이브러리에서 심각한 보안 결함이 발견되었다고 가정해 보겠습니다. 재부팅하지 않고도 라이브러리를 업데이트할 수 있지만 안전하지 않은 라이브러리가 로드된 상태에서 여전히 실행 중인 프로세스는 몇 개입니까? 이전 라이브러리를 사용하면 무엇이든 힘들게 다시 시작할 수 있지만(알 수 있다면) 오류가 발생하기 쉽고 다시 시작하는 것보다 시간이 더 오래 걸릴 수 있습니다.
다시 시작하는 것은 실행 중인 모든 프로세스가 더 이상 오래되고 결함이 있는 라이브러리를 사용하지 않도록 하는 가장 좋은 방법입니다.
답변3
소프트웨어 구성의 계획된 변경을 의미하고 하드웨어가 작동하고(아직 본 적이 없음) 소프트웨어에 버그가 없다고 가정한다면(알다시피...) 커널이나 드라이버의 버그만 강제로 재부팅하게 됩니다. :)
그 외에는... 단일 사용자 모드로 전환하고 마법을 수행하지 않고도 교체를 수행할 수 있는지 잘 모르겠습니다 init
. 이는 본질적으로 재부팅과 크게 다르지 않습니다.