소개
이 랩에서는 Linux 시스템의 작동 상태를 확인하는 방법을 배우게 됩니다. 특히, 시스템이 싱글 유저 모드 (single-user mode) 인지 여부를 판단하는 데 중점을 둡니다. runlevel 및 who -r 명령을 사용하여 전통적인 런레벨 (runlevel) 을 살펴보고, systemctl get-default를 사용하여 최신 systemd 환경에서 기본 시스템 타겟 (default system target) 을 검사합니다. 이 실습을 통해 시스템의 작동 상태를 이해하고 확인하는 데 필요한 실질적인 기술을 습득할 수 있습니다.
runlevel 명령으로 런레벨 확인
이 단계에서는 Linux 의 런레벨 (runlevel) 개념과 runlevel 명령을 사용하여 현재 런레벨을 확인하는 방법을 살펴보겠습니다.
런레벨은 Linux 시스템의 서로 다른 작동 상태를 나타냅니다. 각 런레벨은 어떤 서비스가 시작되고 중지되는지 정의합니다. 예를 들어, 한 런레벨은 그래픽 인터페이스가 있는 다중 사용자 시스템용일 수 있고, 다른 런레벨은 유지 관리에 사용되는 싱글 유저 모드 (single-user mode) 용일 수 있습니다.
최신 Linux 배포판은 전통적인 런레벨 대신 systemd 타겟 (target) 을 사용하는 경우가 많지만, 런레벨에 대한 이해는 이전 시스템이나 문서를 접할 때 여전히 유용합니다.
LabEx 환경의 현재 런레벨을 확인해 보겠습니다. 아직 터미널을 열지 않았다면 터미널을 엽니다.
다음 명령을 입력하고 Enter 키를 누릅니다.
runlevel
다음과 유사한 출력을 볼 수 있습니다.
N 5
출력을 자세히 살펴보겠습니다.
- 첫 번째 문자 (이 경우
N) 는 이전 런레벨을 나타냅니다.N은 이전 런레벨이 없었음을 의미합니다 (시스템이 방금 시작되었습니다). - 두 번째 문자 (이 경우
5) 는 현재 런레벨을 나타냅니다.
전통적인 SysVinit 시스템에서 일반적인 런레벨은 다음과 같습니다.
0: 정지 (시스템 종료)1: 싱글 유저 모드 (유지 관리용)2: 네트워킹이 없는 다중 사용자 모드3: 네트워킹이 있는 다중 사용자 모드 (텍스트 콘솔)4: 사용되지 않음/사용자 정의 가능5: 네트워킹 및 그래픽 인터페이스가 있는 다중 사용자 모드6: 재부팅 (시스템 재시작)
LabEx 환경은 런레벨 5에서 실행되고 있으며, 이는 그래픽 데스크톱 환경이 있는 다중 사용자 시스템에 해당합니다.
런레벨을 이해하면 시스템 시작 문제를 해결하고 시스템 서비스를 관리하는 데 도움이 됩니다.
다음 단계로 진행하려면 **계속 (Continue)**을 클릭하십시오.
who -r 명령으로 런레벨 확인
이전 단계에서는 runlevel 명령을 사용하여 현재 런레벨을 확인했습니다. 유사한 정보를 얻는 또 다른 방법은 -r 옵션과 함께 who 명령을 사용하는 것입니다.
who 명령은 일반적으로 시스템에 로그인한 사용자를 표시하는 데 사용됩니다. 그러나 -r 옵션을 사용하면 현재 런레벨을 표시합니다.
한번 해보겠습니다. 터미널에서 다음 명령을 입력하고 Enter 키를 누릅니다.
who -r
다음과 유사한 출력을 볼 수 있습니다.
run-level 5 <DATE> <TIME>
이 출력은 시스템이 현재 런레벨 5에 있음을 확인합니다. 날짜와 시간은 시스템이 이 런레벨에 진입한 시점을 나타냅니다.
runlevel과 who -r의 출력을 비교해 보면, 두 명령 모두 현재 런레벨에 대한 정보를 제공하지만 형식이 다르다는 것을 알 수 있습니다. who -r은 날짜와 시간을 포함하여 더 자세한 출력을 제공합니다.
유사한 결과를 얻기 위해 서로 다른 명령을 사용하는 것은 Linux 에서 흔히 있는 일입니다. 특정 시스템에서 일부 명령을 사용할 수 있고 다른 명령은 사용할 수 없거나, 한 명령이 다른 명령보다 더 자세한 정보를 제공할 수 있으므로, 필요한 정보를 얻는 여러 가지 방법을 아는 것이 도움이 됩니다.
runlevel과 who -r을 모두 사용하여 시스템의 작동 상태를 확인하는 데 익숙해지십시오.
다음 단계로 이동하려면 **계속 (Continue)**을 클릭하십시오.
systemctl get-default 로 기본 타겟 확인
앞서 언급했듯이, 최신 Linux 배포판은 전통적인 SysVinit 시스템 대신 systemd를 사용하는 경우가 많습니다. systemd는 런레벨과 개념적으로 유사하지만 더 많은 유연성을 제공하는 "타겟 (target)"을 사용합니다.
타겟은 시스템이 원하는 상태에 도달하기 위해 시작하거나 중지해야 하는 systemd 유닛 (서비스, 마운트 지점, 소켓 등) 의 그룹입니다. 기본 타겟은 시스템이 부팅되는 상태입니다.
systemctl 명령을 사용하여 systemd와 상호 작용할 수 있습니다. get-default 하위 명령은 기본 타겟을 표시합니다.
참고: LabEx 환경이 Docker 컨테이너에서 실행되기 때문에, systemctl 명령은 전체 운영 체제 설치와 비교하여 다르게 동작하거나 제한된 정보를 표시할 수 있습니다. 그러나 기본 타겟의 개념을 이해하기 위해 여전히 사용할 수 있습니다.
터미널에서 다음 명령을 입력하고 Enter 키를 누릅니다.
systemctl get-default
다음과 유사한 출력을 볼 수 있습니다.
graphical.target
이 출력은 이 시스템의 기본 타겟이 graphical.target임을 나타냅니다. 이 타겟은 일반적으로 그래픽 데스크톱 환경이 있는 다중 사용자 시스템에 필요한 모든 서비스를 포함하며, 이는 앞서 본 런레벨 5와 일치합니다.
다른 일반적인 타겟은 다음과 같습니다.
multi-user.target: 런레벨 3 과 유사하며, 그래픽 인터페이스가 없는 다중 사용자 시스템입니다.rescue.target: 시스템 복구를 위한 싱글 유저 모드입니다.reboot.target: 시스템 재부팅에 사용됩니다.poweroff.target: 시스템 종료에 사용됩니다.
이 LabEx 환경에서는 기본 타겟을 변경할 수 없을 수 있지만, systemctl get-default로 기본 타겟을 확인하는 방법을 이해하는 것은 systemd 기반 시스템을 관리하기 위한 기본적인 기술입니다.
이제 시스템의 작동 상태 또는 기본 부팅 상태를 확인하는 세 가지 방법, 즉 runlevel, who -r, 그리고 systemctl get-default를 배웠습니다.
이 랩을 완료하려면 **계속 (Continue)**을 클릭하십시오.
요약
이 랩에서는 Linux 에서 시스템의 작동 상태를 확인하는 방법을 배웠습니다. 먼저, 서로 다른 시스템 상태를 나타내는 런레벨의 개념을 살펴보고, runlevel 명령을 사용하여 현재 런레벨을 확인했습니다. 이전 및 현재 런레벨을 포함한 출력의 의미를 이해하고, 전통적인 SysVinit 시스템에서 일반적인 런레벨을 검토했습니다.
그런 다음, 시스템의 런레벨에 대한 유사한 정보를 제공하는 who -r 명령을 사용하여 런레벨을 확인하는 대체 방법을 배웠습니다. 마지막으로, systemd를 자주 사용하는 최신 Linux 배포판이 전통적인 런레벨 대신 타겟을 통해 시스템 상태를 관리하는 방법을 살펴보고, systemctl get-default 명령을 사용하여 기본 타겟을 식별했습니다.



