init 3에서 init 5로 변경 하는 예를 통한 init 실행 과정



Made by 윤나, 도익

 

Root #] init 5 (엔터)

엔터와 함께 Init 프로세스가 실행된다.

(Init – 대장프로그램. 이것들이 어떻게 작동 해야 하는지를 기술 해 놓은 것이 inittab)

흔히 조상 프로세스라 불리우는 init프로세스는 /etc/inittab의 설정 파일을 읽어들여 무엇을 어떻게 언제 실행할 것인지 결정한다. 일단 init 프로세스가 실행 된 이후에 뿌려지는 부팅메시지들은 /etc/inittab 파일의 실행 내용이다.

 

우선 inittab의 내용을 들여다 보자.

Root) vi /etc/inittab

(inittab의 내용은 다음과 같은 스크립트로 구성되어 있다. 그냥 참고하도록 한다)


 
 

Root) Cat inittab | grep “^[#]” (위의 것 보다 좀 더 보기 쉽다. 이것에 필자가 매겨놓은 번호를 통해 하나씩 설명한다)


 

1. 부팅레벨의 단계를 결정

id:5:initdefault

/etc/inittab 파일의 거의 맨 밑의 행에 보면 Id:x:initdefault : 행이 있다. 이 행에 의하여 시스템 부팅 레벨이 결정된다. 시스템 부팅 레벨을 바꾸려면 x 부분을 설정 해 주면 된다.(우리는 5로 수행하였기 때문에 x = 5이다.)

 

2. /etc/rc.d/rc.sysinit 스크립트 수행(모든 부팅 레벨)

sl::sysinit:/etc/rc.d/rc/sysinit

이 스크립트는 시스템 초기화 작업을 수행한다. 부팅 레벨과는 상관 없이 부팅 과정에서 반드시 한번은 실행된다.

 

3. /etc/rc.d/rc(Number).d 디렉토리의 스크립트 실행 (위의 Id:x:initdefaultx값에 따라 실행되는 행이 다르다 우리는 5로 하였다)

13:3:wait:/etc/rc.d/rc 5

 

Rc5.d의 디렉토리를 확인 해 보자.

root) ls /etc/rc.d/rc5.d (엔터)


 

이 디렉토리를 살펴보면 K S로 시작되는 것이 있다. 우선 순서는 K(KILL - K뒤의 숫자는 실행순서)를 먼저 실행하여 전의 run-level을 종료시키고, S(START - S뒤의 숫자는 실행순서)를 실행시켜 새로운 run-level을 실행시킨다.

 

(만약 오라클 실행 시 함께 띄우고 싶은 파일(?) 을 삽입하고 싶다면, 파일을 만들어서 rc5.d 경로에 넣어준다. 그리고 s+ 유니크한 숫자(제일 끝번호로)를 붙여줘서 실행시키게 만든다.

만약 init 3일 때 실행시키고 싶은 파일이 있다면 같은 방법으로 파일을 만들고 rc3.d 경로에 s+유니크 한 숫자로 설정 시키면 된다)

 

4.shutdown 설정

ca::ctrlaltdel:/sbin/shutdown -t3 -r now
ctrl+alt+delete키를 눌렀을 때 shutdown하는 설정. 그리고 -t3 3초후에 종료된다는 뜻이다.

pf::powerfail:/sbin/shutdown -f -h +2 “Power Failure; System Shutting Down”
리눅스 박스에 UPS가 설치되었을 경우에 전원불량 시그널이 수신되면 바로 shutdown 시키는 설정이다.

pr:12345:powerokwait:/sbin/shutdown -c “Power Restored; Shutdown Cancelled”
만약 지정된 시간에 전원이 정상으로 돌아오면 shutdown명령를 취소하는 설정이다.

5.가상 콘솔 실행

1:2345:respawn:/sbin/mingetty tty 1

2:2345:respawn:/sbin/mingetty tty 2

3:2345:respawn:/sbin/mingetty tty 3

4:2345:respawn:/sbin/mingetty tty 4

5:2345:respawn:/sbin/mingetty tty 5

6:2345:respawn:/sbin/mingetty tty 6

run-level당 표준적으로 실행되는 가상콘솔의 정의. 6개가 정의되어 있다

(respawn : 다시 시작한다는 뜻 실행하기 위해서 복제 뜨는 것)

실행하기 위해서 복제 뜨는 것을 fork 또는 spawn이라고 하는데 그것을 다시 실행 하는 것을 respawn이라고 한다(예를 들면 logout했을 경우 꺼지지 않고 다시 login화면이 뜬다.                  이와 같은 경우를 Login화면이 respawn되었다고 한다)

 

6. init 5로 실행 했을 경우 prefdm 실행.

x:5:respawn:/etc/X11/prefdm -nodaemon

run-level 5인경우에 xdm을 실행하여 X윈도우 부팅을 가능하게 하는 설정이다

 

 

Copyright 이윤나, 김도익 All rights reserved.

 

 


Posted by 차칸소년