Aller au contenu principal

36. Boot Reboot and Shutdown a System Safely


Linux는 systemctl 명령("system control"의 약자)을 사용하여 시스템 상태를 관리합니다. 이 명령들은 대부분 관리자 권한이 필요합니다. root 계정은 기본적으로 권한을 가지며, 일반 사용자는 sudo를 앞에 붙여 실행합니다.

root로 로그인한 경우 어떤 명령에도 sudo가 필요하지 않습니다.

시스템 재부팅

root 사용자로 실행 시

$ systemctl reboot

일반 사용자 (sudo 사용) 시

$ sudo systemctl reboot
[sudo] password for aaron:

시스템 종료

$ sudo systemctl power off
[sudo] password for aaron:

응답하지 않거나 오작동하는 프로그램으로 인해 정상 재부팅/종료가 거부될 경우 --force 플래그 사용:

$ sudo systemctl reboot --force
$ sudo systemctl power off --force

단일 force로 해결되지 않을 경우 두 번 지정합니다. 이는 물리적 리셋 버튼과 유사하게 즉시 재부팅됩니다.

강제 재부팅/종료는 데이터 손실을 초래할 수 있습니다. 최후의 수단으로만 사용하세요.

재부팅 및 종료 예약

관리되는 서버 환경에서는 비피크 시간대에 예약 재부팅이나 종료가 필요할 수 있습니다. shutdown 명령이 이에 적합합니다.

특정 시간에 종료 예약 (24시간 형식)

$ sudo shutdown 02:00

일정 시간 후 종료 예약

15분 후 종료:

$ sudo shutdown +15

재부팅 예약

# 새벽 2시에 재부팅
$ sudo shutdown -r 02:00

# 15분 후 재부팅
$ sudo shutdown -r +15

Wall 메시지 기능 활용

shutdown 명령은 로그인한 모든 사용자에게 임박한 재부팅/종료를 알리는 wall 메시지를 지원합니다. 이를 통해 사용자들이 작업을 저장할 시간을 가질 수 있습니다.

1분 후 재부팅하면서 메시지 표시:

$ sudo shutdown -r +1 'Scheduled restart to upgrade our Linux kernel'

정리

이 명령들과 예약 기법을 통해 Linux 시스템의 부팅, 재부팅, 종료 프로세스를 안전하고 효율적으로 관리할 수 있습니다. 강제 옵션은 데이터 손실 방지를 위해 꼭 필요한 경우에만 사용하고, 시스템 유지 관리를 예약할 때는 항상 사용자에게 명확한 알림을 제공하세요.