본문으로 바로가기
반응형


리눅스 런레벨(RunLevel)


리눅스에는 런레벨 이라는 개념이 있다. CentOS리눅스의 런레벨(RunLevel)은 0부터 6까지 총 7단계로 구성되어 있으며, 시스템 관리를 위해 서비스 실행에 관련된 명령을 단계별로 구분하여 적용하는 것을 의미한다.

일반적으로 리눅스 터미널에서 시스템을 종료하기 위해서 init 0를 입력하거나 재부팅을 위해 init 6을 입력한다. 이와 같이 init 뒤에 단계를 나타내는 숫자를 붙이는 형식으로 사용한다.


리눅스 런레벨 7단계는 아래와 같다.


RunLevel 0

Power Off : 시스템 종료를 의미한다. init 0을 입력하여 런레벨을 0으로 변경하라고 터미널에 명령을 내리면 리눅스 시스템을 종료하라는 명령을 내리는 것이다.


RunLevel 1 
Resuce : 시스템 복구 모드이다. 단일 사용자 모드로서 관리자 쉘을 얻게 된다.

RunLevel 2 
Multi-User : NFS를 지원하지 않는 Multi-User 모드이다. 즉, 네트워크를 사용하지 않는 상태의 텍스트 유저 모드를 뜻하는데 CentOS 7부터는 사용되지 않는 레벨이다. 다만 호환성을 위해 런레벨 3과 동일한 것으로 취급된다.

RunLevel 3
Full Multi-User : 텍스트 모드의 다중 사용자 모드이다. 일반적인 쉘 스크립팅 기반의 인터페이스로 작동하는 Multi-User 모드이다. 일반적으로 텍스트 유저 모드라고 부른다.

RunLevel 4
Multi-User(unused) : 기본적으로는 사용하지 않는 모드이다. 하지만 runlevel2와 같이 호환성을 위해 런레벨3과 같은 것으로 취급된다. 해당 단계에 대한 설정을 임의로 정의해서 별도로 사용하기도 한다.

RunLevel 5
Graphical : 그래픽 모드의 다중 사용자 모드이다. 기본적으로는 런레벨3과 동일하지만, GUI를 제공하는 그래픽 유저 모드이다.

RunLevel 6
Reboot : 시스템 재부팅을 나타내는 모드이다. 런레벨 0와 마찬가지로 이 상태로 변경하라는 명령을 내리게 되면 시스템을 재부팅 하게 된다. 혹시나 런레벨 6를 init default로 설정한다면 시스템은 무한 재부팅 상태가 되기 때문에 주의해야 한다.




런레벨 모드를 확인하려면 /lib/systemd/system 디렉터리의 runlevel?.target 파일을 확인하면 된다.



터미널 콘솔에서 ls /lib/systemd/system/runlevel?.target를 입력하면 런레벨 종류를 보여준다. 각각의 런레벨이 어떤 역할을 하게끔 설정되어 있는지를 상세하게 확인하려면 ls뒤에 -l을 붙여 같은 디렉터리의 파일을 확인한다. 그러면 위 사진과의 아래부분과 같이 각각의 runlevel.target 파일이 어떤 기능의 파일에 링크 되어 있는지를 알 수 있다. 보다싶이 이 7개의 runlevel?.target 파일은 링크 파일이다. 각각의 링크 파일은 실제 파일들과 연결 되어 있는 것이다. 위 명령어를 통해 위 캡처 화면처럼 runlevel0.target 파일은 poweroff.target 파일을 가리키는 것이다.



런레벨 변경


시스템에 설정된 런레벨을 변경할 수도 있다. 런레벨의 변경은 root 사용자만 가능한데, 터미널 명령어로 변경할 수도 있고, gedit을 통해서 수정해 줄 수 도 있다. 터미널 명령어로 변경해 보겠다. 현재 시스템의 default.target을 알아보기 위해 ls -l /etc/systemd/system/default.target 파일을 확인해 보니 아래 graphical.target으로 되어 있는 것을 알 수 있다. 즉, 시스템을 부팅하면 기본적으로 X 윈도의 그래픽 모드로 부팅이 되는 것이다.



이를 런레벨 3인 multi-user 상태로 변경해보자. ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target 명령어로 multi-user.target을 deafult.target 으로 변경해 줬다. 그 상태에서 재부팅을 하면 텍스트 모드로 부팅이 될 것이다.


이 상태에서 다시 같은 명령어로 얼마든지 디폴트 상태를 다른 런레벨로 변경할 수 있다.

반응형

 Other Contents