Linux - Run Level

2021. 8. 19. 23:38Linux

이번시간에는 Run Level에 대해 공부해보도록 하겠습니다.

Run Level이란? 현재 시스템의 운영 상태를 숫자로 표현한 것이며 0부터 6까지 총 7 단계로 구성되어 있습니다

 

runlevel

    0      : 종료 상태, 같은 명령어로 shutdown이 있습니다.

    1      : 싱글 유저 모드(단일 사용자 모드), root 관리자 계정만 접근이 가능하며 시스템에 문제가 생겼을때 복구 하는               용도로 사용합니다.

    2      : 멀티 유저 모드, NFS 즉 네트워크를 사용하지 않는 텍스트 모드입니다. 이 모드는 CentOS 7부터 사용하지 않               습니다. (저는 CentOS 7을 사용하고 있습니다)

    3      : 멀티 유저 모드, 일반적인 텍스트 모드입니다. level 2와는 달리 네트워크가 가능합니다

    4      : 사용 안합니다

    5      : 멀티 유저 모드, GUI(xwindow) 환경으로 실행합니다.

    6      : 재 부팅, 같은 명령어로 reboot가 있습니다.

 

저는 GUI(xwindow)환경을 사용하기 때문에 시스템을 키면 runlevel 5 로 실행됩니다. 현재 runlevel는 who -r, runlevel 명령어로 확인 할 수 있습니다

 

 

현재 runlevel 5 인것을 확인 할 수 있었습니다. 이번에는 다른 runlevel로 변경 해보도록 하겠습니다.

우선 runlevel 변경 명령어는 init 입니다. 이 명령어는 프로세스 공부할 때와 shutdown 공부할 때 사용한 적이 있습니다.

runlevel 0 : shutdown과 마찬가지로 시스템을 종료합니다.

 

runlevel 1 : 싱글 유저 모드 즉 root 계정으로만 접속 가능하며 복구용도로 사용합니다.

 

 

runlevel 2 : Centos 7에서 사용하지 않습니다.

 

runlevel 3 : 멀티 유저 모드 CUI(텍스트 모드)환경입니다. 어떤 계정으로 로그인 할 것인지 물어봅니다

 

 

runlevel 4 : 사용하지 않습니다.

 

runlevel 5 : 멀티 유저 모드 GUI(xwindow 모드)환경입니다 

 

 

runlevel 6 : reboot과 마찬가지로 시스템을 재부팅합니다.시스템을 재 부팅하면 현재 어느 runlevel이든 상관 없이 runlevel 5로 돌아갑니다. 왜일까요? 

 

이는 /etc/systemd/system/default.target을 보면 알 수 있습니다.

 

 

이와 같이 default 즉 기본값이 graphical.target runlevel 5인 것을 알 수 있습니다. graphical.target 이 왜 runlevel 5인지는 /lib/systemd/system/runlevel?.target 파일들을 보면 알 수 있습니다.

 

 

부팅 했을 때 원하는 레벨로 부팅되도록 하려면 default.target 심볼릭 링크를 다른 레벨의 파일이랑 링크 하도록 수정해주면 됩니다. 저는 부팅시 runlevel3로 부팅되도록 변경 해보겠습니다.

 

/etc/systemd/system/default.target이라는 심볼릭 링크 파일이 이미 다른 파일과 연결 되어 있기때문에 나오는 오류 메세지입니다. f 옵션을 사용하면 강제로 링크된 파일을 변경 할 수 있습니다.

 

 

이제 리부팅을 하면 runlevel 3으로 실행 될 것입니다. 

 

 

주의 /lib/systemd/system 디렉터리에도 default.target이라는 심볼릭 링크가 있습니다. 하지만 이 링크에 연결된 파일을 변경해도 아무런 변화가 없으며 꼭 /lib 아래가 아닌 /etc 아래의 심볼릭 링크 파일과 링크된 파일을 변경 해야 부팅시 기본 runleve이 변경됩니다.

 

 

마지막으로 runlevel s 라는 것이 있습니다. 유닉스에서 사용하는 명령어지만 CentOS 7에서도 사용 가능합니다. 이는 runlevel 1과 똑같은 명령어입니다. runlevel 1 = runlevel s 라고 알고 있으시면 됩니다

 

 

이상으로 runlevel에 대해 공부 해보았습니다. 다음 시간에는 부팅에 대해 자세히 공부 해보는 시간을 가져보겠습니다.

 

 

 

다음 내용

Linux - 부팅

'Linux' 카테고리의 다른 글

커널 매개 변수 값 제어(sysctl)  (0) 2022.05.23
Linux - 부팅  (0) 2021.08.23
Linux - 프로세스 - 3 (데몬 프로세스)  (0) 2021.08.17
Linux - 프로세스 - 2 (종료, 종류, 제어)  (0) 2021.08.17
Linux - 프로세스 - 1 (정의)  (0) 2021.08.16