Ubuntu - Runlevel (런레벨)

Linux - Runlevel (런레벨)

Unix / Linux 운영 체제에서 시스템 상태를 정의하는 개념

각 런레벨은 시스템에서 실행되는 서비스와 프로세스를 결정하며, 시스템이 어떤 상태에서 동작할 지를 지정

런레벨은 숫자로 표현되며, 각 숫자는 시스템의 특정 상태를 의미

런레벨의 개요

런레벨 0: 시스템 종료 (halt / off)

  • 시스템을 안전하게 종료하고 전원을 끕니다.
  • 모든 프로세스가 종료되고, 파일 시스템이 안전하게 언마운트(unmount)​됩니다.

런레벨 1: 단일 사용자 모드 (Single-user mode / Rescue)

  • 시스템 유지보수를 위한 모드로, 네트워크 인터페이스가 비활성화되고, 다중 사용자 기능이 제한됩니다.
  • 일반적으로 비상 복구나 시스템 점검을 위해 사용됩니다.

런레벨 2: 다중 사용자 모드 (Multi-user mode) - 네트워크 서비스 비활성화

  • 여러 사용자가 동시에 시스템에 로그인할 수 있으며, 네트워크 서비스는 비활성화되어 있습니다.
  • 기본적인 로컬 작업을 수행할 수 있습니다.

런레벨 3: 다중 사용자 모드 (Multi-user mode with networking) - 네트워크 서비스 활성화

  • 여러 사용자가 동시에 시스템에 로그인할 수 있으며, 네트워크 서비스가 활성화됩니다.
  • 대부분의 서버와 워크스테이션이 이 모드에서 운영됩니다.

런레벨 4: 정의되지 않음 (Not used/User-definable)

  • 사용자 정의 런레벨로, 필요에 따라 특정 작업을 수행하는 데 사용할 수 있습니다.
  • 기본적으로 정의되지 않았기 때문에 사용자가 직접 설정해야 합니다.

런레벨 5: 다중 사용자 모드 (Full mode) - GUI 포함

  • 여러 사용자가 동시에 시스템에 로그인할 수 있으며, 그래픽 사용자 인터페이스(GUI)가 활성화됩니다.
  • 데스크탑 환경이 기본적으로 이 모드에서 실행됩니다.

런레벨 6: 시스템 재부팅 (Reboot)

  • 시스템을 안전하게 종료한 후 다시 시작합니다.
  • 모든 프로세스가 종료되고, 파일 시스템이 안전하게 언마운트된 후 시스템이 재부팅됩니다.

런레벨 변경 및 확인

bash
sudo runlevel 
// 현재 런레벨 확인

sudo init 6
// 런레벨 6으로 변경 (시스템 재부팅)

ls -l /lib/systemd/system/runlevel?.target 
// 시스템의 런레벨 타겟 유닛 파일들 확인 

ls -l /lib/systemd/system/default.target
// 시스템의 런레벨 타겟 유닛 파일 확인

ln -sf /lib/systemd/system/multi-user.target /lib/systemd/system/default.target
// 심볼릭 링크 런레벨 변경
// ln: 링크를 생성하는 명령어
// -s: 심볼릭 링크를 생성
// -f: 기존 파일이 존재하는 경우 강제로 덮어씀