• Home
  • About
    • 박혜원의 블로그 :) photo

      박혜원의 블로그 :)

      통계, R 또는 Python 프로그래밍에 대하여 글을 쓰는 블로그

    • Learn More
    • Email
    • LinkedIn
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

Linux 시스템의 종료, 재시작, 그리고 부팅 절차 정리

14 Dec 2025

Linux 시스템의 종료, 재시작, 그리고 부팅 절차 정리

리눅스 시스템을 운영하다 보면 시스템 종료·재시작과 부팅 절차를 정확히 이해하고 있어야 합니다.
특히 서버 환경에서는 잘못된 종료나 런레벨(runlevel) 설정 하나만으로도 서비스 장애가 발생할 수 있으므로, 기본 개념을 정리해 두는 것이 중요합니다.

리눅스 시스템 종료와 재시작

일반 사용자 권한 제한

리눅스에서 시스템 종료 및 재시작은 관리자(root) 권한이 필요합니다.
일반 사용자 계정으로는 해당 작업을 수행할 수 없습니다.

시스템 종료

즉시 종료

halt -p
  • 시스템을 즉시 종료
  • -p 옵션은 전원(power)까지 함께 차단
init 0
  • runlevel 0으로 전환 → 시스템 종료
  • systemd 환경에서는 사용을 권장하지 않음

유예 시간을 두고 종료 (권장)

shutdown -h now
shutdown -h +10
shutdown -h 22:00
  • now : 즉시 종료
  • +10 : 10분 후 종료
  • 22:00 : 지정 시각 종료

운영 환경에서는 사용자에게 사전 공지를 할 수 있는 shutdown 명령 사용이 일반적입니다.

시스템 재시작

즉시 재시작

reboot
init 6
  • runlevel 6으로 전환 → 시스템 재부팅

유예 시간을 두고 재시작

shutdown -r +10

리눅스 부팅 절차

리눅스 시스템은 다음과 같은 단계로 부팅됩니다.

1. Power On → POST

  • 전원 켜진 후 POST(Power-On Self-Test) 수행
  • CPU, 메모리, 디스크 등 주요 하드웨어 점검
  • 이 단계에서 실패하면 OS 부팅 불가

2. MBR → Boot Loader 실행

  • 디스크의 MBR(Master Boot Record) 또는 EFI 영역에서 부트로더 실행
  • 커널을 찾아 메모리에 로드

Boot Loader 종류

  • LILO (Linux Loader) : 과거 사용
  • GRUB (GRand Unified Bootloader) : 현재 표준
    • 부팅 단계에서 관리자 개입 가능
    • e 키를 눌러 커널 파라미터 수정 가능

3. 커널 로딩

  • GRUB가 커널을 메모리에 로드
  • 하드웨어 제어 시작
  • 루트 파일 시스템 마운트 준비

4. systemd / init 실행 (PID 1)

  • 커널 이후 실행되는 최초 프로세스
  • PID = 1
  • 예전: init
  • 현재: systemd

Runlevel과 systemd target

Runlevel 개념

Runlevel 의미
0 종료
1 단일 사용자(rescue)
3 멀티유저(CLI)
5 그래픽 모드
6 재부팅

runlevel 0과 6을 기본값으로 설정하면 안 됩니다.

런레벨 확인

현재 런레벨

who -r

다음 부팅 시 기본 target

systemctl get-default

기본 target 변경

systemctl set-default multi-user.target

default.target 구조

/etc/systemd/system/default.target

  • symbolic link 파일
  • 연결 대상에 따라 런레벨 결정
target runlevel
multi-user.target 3
graphical.target 5

rescue(runlevel 1) 모드

  • 부팅 시 GRUB에서 진입

방법:

  1. GRUB 메뉴에서 커널 선택
  2. e 키 입력
  3. 커널 옵션 맨 마지막에 1 추가

GRUB 커널 파라미터 참고

GRUB_CMDLINE_LINUX="net.ifnames=0"
  • 네트워크 인터페이스 이름을 기존 방식으로 변경
  • ens33, enp0s3 → eth0, eth1

장점:

  • 이름이 단순함

단점:

  • 부팅 순서에 따라 이름이 변경될 수 있음

정리

  • 종료·재시작은 root 권한 필요
  • 운영 환경에서는 shutdown 명령 권장
  • 부팅 흐름
    POST → Boot Loader → Kernel → systemd → target
  • runlevel과 default.target 이해는 서버 운영의 기본


Linux Share Tweet +1