Linux 서버를 재부팅하고 종료하는 방법은 무엇입니까?

시스템 관리자들이 빈번하게 수행하는 작업 중 하나는 서버의 재시작 또는 전원 차단입니다.

이는 운영체제(OS) 패치와 같은 정기적인 유지보수 활동의 일환이거나, 특정 하드웨어 문제로 인해 시스템 전원을 차단해야 하는 경우에 발생할 수 있습니다.

리눅스 시스템은 서버를 재부팅하거나 종료하는 다양한 방법을 제공합니다. 일반적으로 시스템은 모든 명령에 정상적으로 응답해야 하지만, 성능이 저하된 서버는 강제 재부팅이 필요할 수 있습니다. 시스템 재부팅은 관리자의 중요한 작업이며, 여러 사용자가 접속하거나 중요한 프로세스가 실행 중인 서버의 경우 재부팅이나 종료는 잠재적으로 큰 영향을 미칠 수 있는 작업입니다.

이 글에서는 리눅스 시스템을 재부팅하거나 종료하는 데 도움이 될 수 있는 여러 가지 방법을 살펴보겠습니다.

GUI 인터페이스를 이용한 방법

GNOME, KDE, Mate, XFCE와 같은 리눅스 GUI 데스크톱 환경을 사용하고 있다면, 시스템 또는 애플리케이션 메뉴에서 로그아웃, 재시작, 최대 절전 모드 또는 전원 끄기와 같은 기능을 제공하는 전원 버튼을 찾을 수 있습니다. 사용 가능한 옵션은 배포판, 데스크톱 환경, 그리고 사용 중인 OS 버전에 따라 약간씩 다를 수 있습니다. 그러나 일반적으로 시스템의 전원 상태를 변경하는 데 필요한 관련 설정은 메뉴에서 쉽게 찾을 수 있습니다.

예를 들어, Ubuntu Mate 데스크톱에서는 화면 우측 상단의 전원 메뉴에서 시스템 종료 옵션을 찾을 수 있습니다.

“종료…” 옵션을 선택하면, 일시 중단, 다시 시작, 취소, 그리고 시스템 종료 등 여러 옵션을 포함하는 대화 상자가 나타납니다. 여기서 원하는 버튼을 클릭하여 다시 시작 또는 종료를 진행하거나 취소하고 데스크톱 환경으로 돌아갈 수 있습니다.

제공되는 GUI 및 옵션은 사용하는 배포판과 데스크톱 환경에 따라 다를 수 있지만, 시스템의 전원 상태를 변경하는 옵션은 반드시 존재하므로 안심하셔도 좋습니다. GUI를 사용하면, 전원 메뉴에서 몇 번의 클릭만으로 시스템 전원을 제어할 수 있습니다.

systemctl 명령어 활용

systemd를 초기화 시스템으로 사용하는 리눅스 환경에서는 `systemctl` 명령어를 사용하여 시스템을 재시작할 수 있습니다.

$ sudo systemctl start reboot.target

또는 아래와 같이 재부팅과 같은 필수 옵션과 함께 `systemctl`을 사용할 수도 있습니다.

$ sudo systemctl reboot

시스템 종료를 시작하려면 다음 `systemctl` 명령어를 사용하세요.

$ sudo systemctl shutdown

시스템을 정지시키려면 다음을 사용하세요.

$ sudo systemctl halt

shutdown 명령어 사용

`shutdown` 명령어를 사용하여 리눅스 시스템의 전원을 끄거나 재부팅할 수 있습니다. 시스템을 즉시 재부팅하려면 다음을 사용합니다.

$ sudo shutdown -r now

또는 기다리지 않고 즉시 시스템 전원을 끄려면 `-h` 또는 `-P` 플래그를 사용합니다.

$ sudo shutdown -P now

특정 시간 간격 후 시스템을 재부팅/종료하려면 `shutdown` 명령어에 지연 시간을 추가할 수 있습니다. 이는 다음과 같이 설정할 수 있습니다.

$ sudo shutdown -r 10

하드웨어에 전원 차단을 요청하지 않고 시스템을 중지시키려면 `-H` 플래그를 사용할 수 있습니다.

$ sudo shutdown -H now

단순히 `shutdown` 명령어만 입력하면, 1분 후에 종료가 예약됩니다. 특정 시간에 종료하려면 다음을 사용합니다.

$ sudo shutdown 22:30

많은 경우에 시스템이 다운되는 동안, 로그인한 사용자의 콘솔에 메시지가 표시됩니다. 사용자 지정 메시지를 이 브로드캐스트에 추가하려면 `shutdown` 명령어와 함께 메시지를 지정하면 됩니다.

$ sudo shutdown 23:00 "유지보수를 위해 시스템을 종료합니다... 작업을 저장하십시오"

예약된 종료를 취소하려면 `-c` 플래그를 사용할 수 있습니다.

$ sudo shutdown -c

일부 시스템에서는 `shutdown` 명령어가 백엔드에서 `systemctl`을 호출하여 원하는 재부팅/종료 작업을 수행합니다.

reboot 명령어

시스템을 정상적으로 재부팅하려면 `reboot` 명령어를 사용할 수도 있습니다 (필요에 따라 `sudo`와 함께 사용해야 할 수 있습니다).

$ sudo reboot

`reboot` 명령어로 시스템 전원을 끄려면 `-p` 플래그를 사용합니다.

$ sudo reboot -p

강제로 재부팅해야 하는 경우 (시스템이 일반적인 재부팅 명령어에 응답하지 않는 경우), 다음과 같이 `-f` 플래그를 시도해 볼 수 있습니다.

$ sudo reboot -f

halt 명령어

시스템을 정지시키려면 단순히 `halt` 명령어를 사용할 수 있습니다.

$ sudo halt

poweroff 명령어

시스템 전원을 끄려면 `poweroff` 명령어를 사용하는 방법도 있습니다.

$ sudo poweroff

init 명령어

systemd에서 실행되지 않는 시스템의 경우 `init` (또는 `telinit`도 사용 가능) 명령어는 시스템의 실행 레벨을 변경하는 옵션을 제공합니다. `init`를 사용하여 시스템을 재부팅하려면 다음을 사용할 수 있습니다.

$ sudo init 6

시스템을 정지시키기 위해 사용할 수 있는 `init` 명령어는 다음과 같습니다.

$ sudo init 0

`init`를 사용하여 특정 실행 레벨을 호출하면, 시스템 초기화 프로세스가 특정 순서로 일련의 초기화 스크립트를 실행하여 시스템이 원하는 실행 레벨에 도달하게 합니다. 실행 레벨 6은 재부팅을 위해 정의되고, 실행 레벨 0은 시스템 정지를 위해 정의됩니다.

전원 버튼 사용

데스크톱이나 랩톱에서 리눅스를 실행하는 경우, 기본적으로 전원 버튼을 누르면 시스템을 절전 모드로 전환하거나 종료 신호를 보내 전원을 끕니다. 이 옵션은 시스템의 전원 설정에서 조정할 수 있습니다. 정상적인 명령어가 작동하지 않을 경우, 이 방법은 이상적으로 최후의 수단으로 사용해야 합니다.

리눅스를 실행하는 원격 서버의 경우, 일반적으로 전원 버튼은 시스템의 전원을 차단합니다. 그러나 원격 데이터 센터에 있는 서버의 경우, 해당 서버 공급업체에서 제공하는 원격 관리 CLI/GUI 도구를 통해 재부팅하거나 전원을 끌 수 있는 추가 옵션이 있습니다.

Alt + SysRq 조합

응답하지 않고 멈춰버린 시스템의 경우, 재부팅 또는 전원 끄기 상태로 전환하기가 어려울 수 있습니다. 다른 옵션이 없을 때, 최후의 수단으로 Alt + PrintScreen 키를 누른 상태에서 특정 키를 순서대로 눌러 시스템을 즉시 재부팅할 수 있습니다. 선호되거나 권장되는 옵션은 아니지만, 필요할 경우 최후의 수단으로 사용할 수 있습니다.

다른 비정상적인 강제 재부팅 또는 종료 옵션과 마찬가지로, 이 방법을 사용하면 데이터 손실 및 손상 가능성이 있다는 점을 항상 기억해야 합니다. 백업 및 이중화에 대한 시스템 모범 사례를 준수하고, 이 옵션을 사용할 때는 주의해야 합니다.

이 옵션이 작동하려면 리눅스 커널에서 활성화되어 있어야 합니다. 아래 명령을 사용하여 이를 확인할 수 있습니다.

$ cat /proc/sys/kernel/sysrq

출력 값 1은 완전히 활성화되었음을 나타내고, 더 큰 숫자는 일부 기능만 활성화되었음을 나타냅니다. 명시적으로 활성화하려면 다음을 사용합니다.

$ sudo echo “1” > /proc/sys/kernel/sysrq

이 방법을 사용하여 시스템을 재부팅하려면, Alt + SysRq(PrintScreen) 키를 누른 상태에서 각 키 사이에 몇 초 간격을 두고 다음 키를 순서대로 누릅니다.

R E I S U B

또는 종료하려면, 마지막 B 대신 O를 누릅니다.

R E I S U O

여기서 키의 의미는 다음과 같습니다.

  • R: 키보드를 원시 모드에서 XLATE 모드로 전환
  • E: 초기화를 제외한 모든 프로세스에 SIGTERM 신호를 보냅니다.
  • I: 초기화를 제외한 모든 프로세스에 SIGKILL 신호를 보냅니다.
  • S: 마운트된 모든 파일 시스템 동기화
  • U: 마운트된 모든 파일 시스템을 읽기 전용으로 다시 마운트

마지막으로, B 또는 O는 각각 다음을 나타냅니다.

  • B: 파티션을 마운트 해제하거나 동기화하지 않고 시스템을 즉시 재부팅

또는

  • O: 파티션을 마운트 해제하거나 동기화하지 않고 시스템을 즉시 종료

요약

여기에서는 리눅스 시스템을 재부팅하거나 종료할 수 있는 다양한 방법을 살펴보았습니다. 간단한 GUI 인터페이스부터 자동화까지 가능한 복잡한 터미널 명령어까지 다양한 옵션을 제공합니다. 시스템이 멈춰버린 경우, 이상적인 방법은 아니지만 드문 경우에 사용해야 할 강제 재부팅 또는 종료 방법에 대해서도 논의했습니다.

이 문서에서 설명한 명령어들은 시스템 상태에 영향을 미치고, 특히 엔터프라이즈 서버의 경우 여러 사용자와 서비스에 영향을 줄 수 있으므로 사용 시 주의해야 합니다. 이 글에서 제안한 명령어의 매뉴얼 페이지를 참고하여 명령어에 대해 자세히 알아보고, 명령어가 제공하는 모든 옵션을 확인하는 것이 좋습니다.

여기에서 종료 시 암호 요청을 중지하도록 WAS를 설정하는 방법을 알아보세요.