리눅스마스터1급 : 리눅스시스템의 실행레벨(runlevel)
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 3,147 조회
- 0 추천
- 목록
본문
리눅스마스터1급 : 리눅스시스템의 실행레벨(runlevel)
프로세스의 실행 레벨
컴퓨터가 부팅이 되면서 init 프로세스는 /etc/inittab 파일의 내용을 한 행씩 실행한다.
이 파일에 실행 레벨을 정하여 두고 설정에 따라 리눅스가 각 실행 레벨로 부팅한다
(/etc/inittab에 런레벨에 관한 모든 설정을 하는 경우와 inittab에 실행할 런레벨을 설정하고 실제 실행 레벨에 관한 사항은 /etc/init/rc.conf에 기술하는 경우가 있다.
이 둘의 실질 내용은 동일하다). 런레벨 0부터 6까지는 각각의 실행 레벨에 따라 어떻게 행동할 것인지 지정한다.
그리고 관리자는 실행레벨 하나를 지정하고, init는 지정된 실행레벨의 스크립트들을 실행한다.
이 스크립트들의 실행 여부에 따라 부팅시 실행될 프로그램이 달라진다.
즉, 실행레벨은 부팅과 셧다운 과정 동안 어떤 데몬과 서비스들이 시작되고 종료될지를 결정한다.
다음은 런레벨의 목록, 수행되어야 할 프로세스들이 지정되어 있는 디렉토리 및 이에 대한 설명이다.
Runlevel 0 | 디렉토리 | /etc/rc.d/rc0.d |
설명 | 셧다운 절차에 대해 책임진다.
모든 프로세스들을 종료시키고, 파일 시스템을 unmount하는 작업을 포함한다.
| |
Runlevel 1 | 디렉토리 | /etc/rc.d/rc1.d |
설명 | 단일 사용자 모드. 보통 시스템 관리자가 시스템에 특정 설정을 할 때 사용한다.
시스템이 이 모드에 있을 때는 다른 사용자들은 로그인할 수 없다.
| |
Runlevel 2 | 디렉토리 | /etc/rc.d/rc2.d |
설명 | 다중 사용자 모드. 단, NFS를 지원하지 않는다.
| |
Runlevel 3 | 디렉토리 | /etc/rc.d/rc3.d |
설명 | 다중 사용자 모드. 대부분의 배포판에서 기본적인 런레벨로 사용하는 runlevel. 충분히 네트워크가 가능한 리눅스 시스템으로 사용될 수 있도록 대부분의 서비스들이 시작될 수 있도록 설정할 수 있다.
| |
Runlevel 4 | 디렉토리 | /etc/rc.d/rc4.d |
설명 | 사용자 정의 레벨로 정의될 수 있도록 비어있는 레벨이다.
| |
Runlevel 5 | 디렉토리 | /etc/rc.d/rc5.d |
설명 | 그래픽 로그인 프롬프트 시작되는 서비스들은 실행레벨 3과 동일하게 설정할 수 있다.
| |
Runlevel 6 | 디렉토리 | /etc/rc.d/rc6.d |
설명 | 재실행 모드. 이 실행 레벨은 거의 실행 레벨 0과 같지만, init.d가 시스템이 재실행 될 것인지, 종료될 것인지를 결정한다.
|
이러한 실행레벨의 스크립트들에 대해 관리자가 반드시 알아야 하는 사항들을 정리하면 다음과 같다.
∙디렉토리의 모든 파일들은 모두 링크파일 형태로 존재한다.
∙링크파일들은 모두 /etc/rc.d/init.d 디렉토리의 실제 파일로 링크되어 있다.
∙즉, 이 링크에 의해 각 실행 단계별로 필요한 프로세스들을 실행하기도 하며 실행하지 않을 수도 있다.
∙이 디렉토리에 존재하는 모든 파일들은 K로 시작하거나 S로 시작한다.
∙K로 시작하는 스크립트 파일들은 해당 부팅레벨 (여기서는 현재 3번 부팅레벨)에서는 실행되지 않는 프로세스들이며, S로 시작하는 스크립트 파일들은 해당 부팅레벨에서 부팅 시에 실행하는 프로세스들이다.
∙K나 S의 숫자들은 실행될 순서를 나타낸 것이다.
∙이런 링크를 생성하고 삭제할 수 있는 명령어는 chkconfig이다.
즉, 각 부팅레벨바다 링크파일을 별도로 만들고 삭제하고 K나 S를 변경할 수 있는 명령어이다.
그리고 한 가지 더 주의 깊게 보아야 할 것은 맨 마지막 스크립트가 S99local이라는 것이다.
이 스크립트에 의해 /etc/rc.d/rc.local 스크립트가 수행된다.
즉, /etc/rc.d/rc.local 파일에 설정해 둔 내용들이 부팅 시마다 매번 자동 실행되는 이유는 여기에 있다.
관련자료
-
이전
-
다음