init 프로세스와 런레벨
- 기존의 init 프로세스는 런레벨(Run Level) 이라는 개념을 사용
- init 은 시스템의 단계를 일곱 개로 구분하여 정의하고 각 단계에 따라 쉘 스크립트를 실행하는데,
이 단계를을 런레벨이라고 함
유닉스의 런레벨 |
||
런레벨 |
의미 |
관련 스크립트의 위치 |
0 |
시스템 종료 |
/etc/rc0.d |
1, S, s |
단일 사용자 모드 |
/etc/rc1.d |
2 |
다중 사용자 모드(NFS를 실행하지 않음) |
/etc/rc2.d |
3 |
다중 사용자 모드(NFS 포함) |
/etc/rc3.d |
4 |
사용하지 않음(예비 번호) |
/etc/rc4.d |
5 |
시스템 종료(페도라는 GUI 모드로 부팅) |
/etc/rc5.d |
6 |
시스템 재시작 |
/etc/rc6.d |
- 페도라와 달리 우분투에서는 이중 0, 1, 2, 6번만 사용
- 나머지(3, 4, 5)는 기본 런레벨이 2이므로 주의
우분투의 런레벨 |
||
런레벨 |
의미 |
관련 스크립트의 위치 |
0 |
시스템 종료 |
/etc/rc0.d |
1, S, s |
단일 사용자 모드 |
/etc/rc1.d |
2 |
그래피컬 다중 사용자 모드 + 네트워킹(기본 값) |
/etc/rc2.d |
3 |
런레벨 2와 동일 |
/etc/rc3.d |
4 |
/etc/rc4.d |
|
5 |
/etc/rc5.d |
|
6 |
시스템 재시작 |
/etc/rc6.d |
- 런레벨 3, 4, 5번이 2번과 같다는 것을 통해 'rc2.d' 디렉터리와 'rc3.d', 'rc4.d', 'rc5.d' 디렉터리의 내용이 모두 같음을 확인 =========================================================================== sjw-lenovo@sjwlenovo-Lenovo-U310:/etc$ ls rc*.d - 런레벨별로 실행하는 스크립트 파일은 '/etc/init.d' 디렉터리에 있는 파일에 대한 심벌릭 링크임. =========================================================================== sjw-lenovo@sjwlenovo-Lenovo-U310:/etc$ ls -l /etc/rc2.d |
런레벨 변경하기 |
- init은 1번 프로세스의 이름이기도 하지만, init 프로세스의 런레벨을 바꾸는 명령으로 사용되기도 함 - init을 명령으로 실행하면 실제로는 '/sbin/telinit' 가 실행됨 - init으로 런레벨을 변경하기 위해서는 바꾸려는 럽레벨을 숫자로 지정하면 됨 user@ubuntu:~$ sudo init 1 - 단일 사용자 모드인 러벨을 1로 바꿈 - 그래픽 환경이었던 콘솔 화면이 터미널 환경으로 바뀌면서 프롬프트가 출력되는데, 현재 우분투는 init1을 실행하면 버그가 발생 - 원래 시스템에 문제가 있을 경우 시스템을 런레벨 1(런레벨 S)로 변경하여 점검해야함. - Windows 의 안전모드 같은 것으로, 다중 사용자 모드에서 시스템 관리자만 사용할 수 있는 단일 사용자 모드로 번환하는 것 |
기본 런레벨 지정하기 |
- 우분투에서 부팅할 대 동작할 기본 런레벨은 '/etc/init/rc-sysinit.conf' 파일의 DEFAULT_RUNLEVEL 변수에 지정되어 있음. =========================================================================== sjw-lenovo@sjwlenovo-Lenovo-U310:/etc$ cat /etc/init/rc-sysinit.conf =========================================================================== - 당연하지만 기본 런레벨 0이나 런레벨을 6으로 기본 런레벨로 지정하면 안됨... |
현재 런레벨 확인하기 |
- 현재 런레벨을 확인하려면 'runlevel' 명령을 사용 - runlevel 명령 사용시 'N 2' 라고 출력되는 것은 부팅할 때 런레벨2로 부팅했음을 뜻함. =========================================================================== sjw-lenovo@sjwlenovo-Lenovo-U310:/etc$ runlevel |