런레벨 0과 6은 시스템을 종료하거나 다시 시작하는 것을 의미합니다.
명령을 입력하면 init 0
이로 인해 시스템이 종료됩니다.
그러나 내 질문은
- 시스템이 종료되는 경우,왜냐하면성공적으로 런레벨 0으로 변경되었습니다
- 또는 현재 런레벨에서 런레벨 0으로의 변경만 트리거하는 경우(즉, 시스템에 런레벨 0으로 가고 싶다고 알리는 경우) 해당 런레벨에 도달합니다.뒤쪽에폐쇄? 물론안 돼요, 전원이 꺼지면 시스템이 어떤 작업도 수행하지 않기 때문입니다.
즉, 시스템이 런레벨 0에 있습니까?
- 하지만시스템이 종료되고 있습니다(실행에서 종료로 전환되는 동안).
- 뒤쪽에시스템이 다운되었나요(설명의 결과로 실행 수준에 도달할 수 없음)?
실행 레벨 6에 대한 추가 질문: 다음 부팅 중 어느 단계에서나 시스템이 실행 레벨 6에 있게 됩니까?
나는 Linux의 동작(Unix와 다른 점이 있다면)에 관심이 있습니다.
답변1
init
init
(클래식 SVR4 스타일 , systemd, runit 등을 사용하든 관계없이 ) 상태 머신으로 코딩됩니다. 상태를 변경시키는 이벤트에 대한 응답으로만 작업을 수행합니다. 전원 켜기에서 종료로의 시스템 전환은 현재 상태에서 실행 레벨 0에 의해 정의된 상태로 변경되는 것이며, 재시작 종료도 동일하며 실행 레벨 6에 정의된 상태로 변경됩니다(실제로는 , 이 두 전환은 커널에 대한 마지막 호출을 제외하면 거의 동일합니다 init
.
init
두 번째 질문에 대답하려면 시스템은 커널이 다시 시작하기 위해 호출되는 시점(반환되지 않음)부터 다음 부팅 중에 커널이 실행을 "init"로 넘길 때까지 "런레벨 6"에서 작동합니다.