리눅스 전원 관리 명령

명령 과거 명령 설명
systemctl halt halt 시스템을 종료한다. 전원은 끄지 않고, 하드웨어가 멈춘 상태로 유지됨.
데이터 보존되지 않으며, 다시 시작하면 새로 부팅됨
systemctl poweroff poweroff 시스템을 종료하고 전원도 끔
systemctl reboot reboot 시스템을 종료한 후 즉시 재부팅
systemctl suspend pm-suspend 시스템을 일시 중단
현재 메모리 상태를 RAM에 저장하고, 전력을 최소화해 절전 모드로 전환
systemctl hibernate pm-hibernate 시스템을 최대 절전 모드로 전환
현재 메모리 상태를 디스크에 저장하고, 시스템을 완전히 종료
부팅 시 상태가 복원된다.
systemctl hybrid-sleep   메모리 외에 디스크에도 시스템 상태를 저장함 (메모리 + 디스크에 저장)
suspend와 hibernate를 동시에 진행하는 것

halt : 정지
suspend : 유예하다
hibernate : 동면하다

과거 명령들을 사용할 수 있고, 특히 완전 종료를 위해 shutdown 명령 또한 사용 가능하나, 가급적 systemctl 명령을 사용하는 것이 권장됨.

리눅스 시스템의 종료

1. shutdown 명령

명령어 설명

시간을 정해 시스템을 안전하게 종료하는 명령

명령어 사용법

1
shutdown [options] time [message]

옵션

옵션 full name 설명
-r –reboot 재부팅
-H –halt 시스템 종료. 전원은 꺼지지 않을 수 있음
-P –poweroff 시스템 종료 및 전원 끔
-c –cancel 예약된 셧다운 취소
-k –kickoff 실제 셧다운을 하는 것처럼 경고 메시지만 보냄
실제 종료되지는 않음
-t –time 시스템 종료 시간을 초 단위로 설정

time 인수

사용방법 예시
절대시간 형식 shutdown -H 23:15 23시 15분에 종료
몇분 후 shutdown -r + 5 5분 뒤에 재부팅
즉시 종료 shutdown -h now 즉시 종료

2. 시스템의 종료 절차

시스템 종료 명령어가 실행되면, 실제로는 systemd 프로세스를 통해 셧다운이 처리된다.

순서 종료 절차
1 systemd 프로세스는 모든 프로세스에게 종료를 알림
2 각 프로세스가 스스로 종료하도록 TERM 시그널을 보냄
3 종료하지 않은 프로세스에게 강제 종료 KILL 시그널을 보냄
4 파일 시스템을 잠그고, 루트 파일 시스템을 제외한 모든 파일 시스템을 언마운트
5 루트 파일 시스템을 읽기 전용으로 다시 마운트
6 sync 프로그램을 사용해 버퍼 데이터를 파일 시스템에 기록
7 시스템 호출을 통해 커널에 재부팅 또는 종료를 요청함

Reference

UNIX시스템 - 김희천,김진욱 저