Linux

[shutdown/reboot/init] 시스템 재부팅

비번변경 2022. 2. 2. 17:41

서버 이상으로 재부팅이 필요한 상황이다. 물리 하드웨어 재부팅이 불가능한 상황이라 콘솔 상에서 재부팅 명령을 실행하고자 한다.

이 글에서는 재부팅 시도 시 사용할 수 있는 명령어를 정리한다. 수행에는 root 권한이 필요하다.

 

shutdown

-r 옵션과 재부팅 수행 시점을 지정해야 한다. -f 옵션 사용 시 시스템 종료에 해당하므로 물리적으로 시스템을 기동시켜야 한다.

# 지금 재부팅
shutdown -r now

# 전달 받은 시간(분) 이후 재부팅
shutdown -r <MIN>
shutdown -r 15

# 지정 시간에 재부팅
shutdown -r hh:mm
shutdown -r 18:45

shutdown -r now

동작 순서

1. 실행 중인 모든 프로세스 kill (SIGKILL)

2. File System unmount

3. Kernel에 ACPI 파워 명령을 보낸다.

 

reboot

내부적으로 shutdown -r 명령을 수행한다.

reboot

# 시스템 강제 재부팅. 안전하지 않음
reboot -f

reboot

 

init

init 6

reboot에 해당하는 runlevel(6)을 전달하여 실행한다. 참고로 0을 전달하면 시스템 종료를 수행한다.

init 6

init 프로세스가 활성화된 모든 프로세스와 데몬을 종료하도록 한 후, 재부팅을 위한 shutdown -r now 명령을 호출한다.

 

systemctl

RHEL, CentOS 7부터는 systemctl을 시용하는 것이 좀 더 안전하다.

systemctl reboot

systemctl reboot

shutdown과 reboot은 구버전 호환성을 위해 남아있다.

 


재부팅에 시간이 오래 걸렸다면 디스크나 부팅 로그, 불필요한 서비스가 존재하는지 또는 서비스 종료에 오랜 시간이 필요한 게 있는지 확인하도록 한다.

메모리 과다 사용 후라면 프로세스 행으로 인한 시간 소요가 있을 수 있다. 이 경우는 도커를 사용하고 있을 때 자주 발생하며, 모든 컨테이너가 종료될 때까지 shutdown이 대기 상태를 유지하기 때문이다.

 

참고 문서

http://a.zany.kr:9003/board/bView.asp?bCode=11&aCode=14194

 

 

 

728x90