
커널이 로드되었을 때 init 프로세스가 실행되면 하향식 접근 방식으로 /etc/inittab 파일을 읽습니까? 즉, 파일에 나타나는 대로 각 행을 실행합니다.
그렇다면 내가 읽고 이해한 바에 따르면 이는 문서화된 실행 수준에 들어간 다음 sysinit 프로세스를 시작하거나 그 반대로 시작한다는 의미입니까?
예를 들어 내가 본 일반적인 예는 다음과 같습니다.
id:3:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
답변1
먼저 형식은 inittab
다음과 같습니다.
Identifier:RunLevel:Action:Command
여기서 핵심은 runlevel
. 다음 예제 코드를 보면:
a:3::
b:123::
c:23::
d:123::
e:23::
그러면 1부터 시작하여 다양한 ID의 실행 순서는 runlevel
다음과 같습니다.
init 1: b d
init 2: c e
init 3: a
overall: b d c e a
보시다시피 파일에 나열된 순서대로 실행됩니다.런레벨별로 그룹화! 또한 식별자가 지정된 런레벨에 없으면 a 가 발행 SIGTERM
된 다음 가 발행된다는 점을 기억하십시오 SIGKILL
.
답변2
특정 순서로 처리되는 스크립트가 아닙니다. 특정 이벤트 또는 실행 수준에 대해 실행할 스크립트/명령을 시스템에 알려주는 구성 파일입니다. 파일의 항목 순서는 아무런 차이가 없으며 각 실행 수준에 대해 여러 스크립트나 명령을 사용할 수 있습니다.
"id:3:initdefault:"를 표시하는 첫 번째 줄은 대부분의 버전에서 기본 실행 수준이 3 => 다중 사용자 모드임을 시스템에 알려줍니다.
"si::sysinit:..." 줄은 시스템 초기화 시 /etc/rc.d/rc/sysinit 스크립트를 실행하도록 시스템에 지시합니다(시스템 부팅 시 실행).
inittab을 실행하면 파일에 대한 모든 옵션 목록이 표시됩니다.