본문 바로가기

Ubuntu Linux

리눅스 시스템의 종료

이번에는 리눅스 시스템을 종료하는 방법에 대해서 알아보려고 합니다. 우리가 윈도우에서 "윈도우 - 전원 - 끄기" 의 순서로 시스템을 종료하는 것처럼, 리눅스도 비슷한 기능을 가지고 있습니다.

 

위 사진은 우분투 화면 우측 상단 메뉴얼바 입니다. 위 방법 이외에도 다양한 방법이 존재하는데, 오늘은 이에 대해서 알아보려고 합니다. 일단 어떤 방법이 있는지 나열해 보겠습니다.

 

  • shutdown 명령 사용
  • halt 명령 사용
  • poweroff 명령 사용
  • 런레벨을 0이나 6으로 전환 (target 전환)
  • reboot 명령 사용
  • 전원 종료

마지막에 소개한 전원 종료는 시스템이 먹통이 되어서 아무것도 할 수 없을 때의 조치입니다. 때문에 최후의 수단이라고 생각하고, 자주 사용해서는 안됩니다. 나머지 다섯개 명령을 알아보겠습니다.

 


shutdown 명령 사용하기

리눅스 시스템을 가장 정상적으로 종료하는 방법이 바로 shutdown 명령입니다. 시스템을 종료하는 다른 명령과 달리 shutdown 명령은 다양한 종료법을 제공합니다. 또한 런레벨 (runlevel) 을 변경하는 것 또한 가능합니다.

 

shutdown
- 기능 : 리눅스를 종료한다.
- 형식 : shutdown [옵션] [시간] [메시지]
- 옵션
      -k : 실제로 시스템을 종료하는 게 아니라 사용자들에게 메시지만 전달합니다.
      -r : 종료 후 재시작합니다.
      -h : 종료하며 halt나 power-off 상태로 이동합니다.
      -c : 이전에 했던 shutdown 명령을 취소합니다.
      시간 : 종료할 시간 명시 (hh:mm, +m, now)
      메시지 : 모든 사용자에게 보낼 메시지

- 사용 예 : shutdown -h now                shutdown -c                      shutdown -r +3 "System is going down"

 

복잡해보이지만 몇번 사용하다 보면 금방 익숙해집니다. 해당 기능은 윈도우 실행 (win + R) 키로도 활용이 가능하기 때문에 유용하게 사용할 수 있습니다.

 

사용예시로 간단하게 예를 들자면 shutdown -r +3 "System is going down" 은 3분 뒤에 시스템이 종료되고, 따옴표 안에 메시지를 사용자에게 출력한다는 의미입니다.

 

저는 보통 -r 옵션과 -h 옵션을 많이 사용합니다.

 

터미널에서 옵션 또는 권한을 적용하다 보면 재부팅을 해야하는 경우가 왕왕 있는데, 이때 사용하는 옵션이 바로 -r 이고, 우분투를 종료하고 싶을 때는 -h 옵션을 사용합니다.

 

 

 

런레벨 변경하여 종료하기

 

시스템을 종료하는 또 다른 방법은 런레벨을 변경하는 겁니다. 이전에 배웠듯이, runlevel 0과 6은 각각 시스템 종료와 재부팅을 의미합니다. 때문에 런레벨을 바꾸는 것만으로 시스템을 종료할 수도 있습니다.

 

user1@myubuntu:~$ sudo init 0

위 명령어를 작성하면 런레벨이 0으로 변경되면서 시스템이 종료됩니다.

 

user1@myubuntu:~$ sudo init 6

런레벨을 6으로 적용하게 되면 시스템이 즉시 재부팅됩니다.

 

이는 다른 방식으로도 적용이 가능한데, 바로 systemd 명령어입니다.

 

systemctl isolate poweroff.target

또는 

systemctl isolate runlevel0.target

target 유닛을 변경해도 적용결과는 같기 때문에 위와 같이 작성해도 시스템 종료가 진행됩니다.

 

systemctl isolate reboot.target

또는

systemctl isolate runlevel6.target

 

이는 재부팅에도 적용이 가능합니다.

 

 


 

기타 시스템 종료 명령

 

shutdown 명령과 런레벨  변경 외에도 시스템을 종료하거나 재시작하는데 사용할 수 있는 명령이 더 있습니다. 바로 reboot, halt, poweroff 입니다. 해당 명령은 모두 systemctl의 심벌릭 링크입니다.

 

 

세가지 명령의 세부정보를 출력해봤습니다. 모두 systemd 를 가리키고 있는 것을 확인할 수 있었습니다.

 

해당 명령어들은 예전부터 존재하던 것이기 때문에 현재까지 유지되고 있습니다. 하지만 지금은 많이 사용하지 않기 때문에 이런게 있다, 정도로만 기억하고 계시면 되고 shutdown 또는 systemd 런레벨 변경으로 시스템을 종료 또는 재시작하면 됩니다.

'Ubuntu Linux' 카테고리의 다른 글

파일 아카이브와 압축  (0) 2022.05.27
우분투 패키지 설치  (0) 2022.05.26
리눅스 시스템의 부팅 (3)  (0) 2022.05.23
리눅스 시스템의 부팅 (1)  (0) 2022.05.21
프로세스 종료하기  (0) 2022.05.20