본문 바로가기
Old Posts/Linux

[Linux] 리눅스 런레벨(RunLevel) 의미와 확인 방법

by A6K 2022. 2. 24.

리눅스 실행레벨(RunLevel)은 유닉스에서부터 시작되었다. 시스템 관리를 용이하게 만들기 위해 사용되었다.

예를 들어 시스템을 실행할 때 네트워크를 사용할지말지, 여러 명의 사용자가 로그인하도록 허용할지 말지, GUI를 제공할지말지 등을 구별해서 시스템을 구동시키는 것이다.

리눅스 런레벨 종류

런레벨 설명 특징
0 Halt 시스템 중지
기본값으로 설정 불가
1 Sing user mode 단일 사용자모드
시스템 복구 등 관리 목적으로 사용하는 모드로 네트워크나 서버, 파일 공유 같은 서비스가 제공되지 않으며, 바로 root 계정으로 로그인 됨
2 Mutiuser, without NFS 네트워크를 사용하지 않는 다중 사용자 모드
Runlevel 3에서 네트워크를 사용하지 않는 모드
3 Full multiuser mode 일반적인 다중 사용자 모드
4 Unused 사용자가 정의해서 사용 가능
5 X11 X 윈도우(GUI)를 사용하는 다중 사용자 모드
최근 배포되는 리눅스에서 기본값으로 사용
6 Reboot 시스템 재부팅
기본값으로 설정 불가

현재 시스템의 런레벨을 확인하기 위해서는 'runlevel' 명령어를 사용하면 된다.

[root@localhost ~]# runlevel
N 3

runlevel 명령어의 결과로 'N 3'이라는 값이 출력되는데 첫 번째 자리는 이전에 실행되던 부팅레벨이며, 두 번째 자리가 현재 실행 중인 부팅 레벨을 의미한다. 'N'은 존재하지 않는 부팅레벨을 뜻하며 부팅후 부팅레벨이 변경되지 않았음을 의미한다. 'S'라는 숫자는 1(싱글유저)과 동일한 의미를 갖는다.

런레벨 변경

리눅스의 런레벨은 'init' 명령으로 변경할 수 있다. 예를 들어 'init 0'이라고 입력하면 '런레벨을 0으로 변경하라'라는 의미로 시스템을 종료하라는 의미로 사용된다.

시스템이 부팅될 때의 기본 런레벨은 '/etc/inittab' 파일에 정의되어 있다.

# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
#
id:3:initdefault:

이 파일에서 중간에 3이라는 값이 시스템의 기본 런레벨을 의미한다. 이 값을 5로 설정하면 GUI를 제공하는 모드로 시스템이 구동된다. 

댓글