강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

shutdown을 이용한 시스템 종료 및 재시작

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

shutdown을 이용한 시스템 종료 및 재시작

 

 

 

리눅스시스템에서 가장 흔하게 사용하는 종료(재시작) 방법이 shutdown이라는 명령어를 이용하는 것이다.

 

 

 

 shutdown을 사용하면 시스템관리자가 원하는 모든 방법으로 시스템을 종료하거나 재시작할 수 있다.

 

 

 

 시스템을 종료하기 위해서 시스템관리자가 shutdown을 실행하면 커널은 몇가지 단계를 거쳐서 시스템을 종료한다.

 

 

 

 즉 멀티유저운영체제의 필수요건인 다중사용자와 멀티태스킹, 멀티스레드등으로 인하여 현재 실행되고 있는 프로세스들을 중지하고 로그인되어 있는 사용자들을 모두 로그아웃시켜야 하며 메모리에 있는 데이터를 디스크로 저장해야하는 등의 작업들을 수행한 후에 실제로 시스템을 종료하거나 재시작하는 작업을 하게 된다.

 

 

 

 물론, 이런 작업들이 모두 종료 및 재시작하는 작업의 한 부분이기도 하다.

 

 

 

 

 

그렇다면 시스템을 종료하거나 재시작하기 위하여 shutdown을 실행하였을 때에 어떤 과정을 거치게 되는가를 알아보도록 하자.

 

 

① 접속중인 사용자들에게 시스템종료메시지를 보낸다.

 

 

 

 

   새로운 로그인을 금지시킨다.

 

 

 

   지정된 시간내에 종료되지 않은 프로세스를 강제종료한다. (kill)

 

 

 

 

④ 지정된 시간내에 로그아웃하지 않은 사용자를 강제 로그아웃시킨다.

 

 

 

 

⑤ 데이터 동기화작업을 수행한다.

 

 

 

 즉 아직 저장되지 않고 메모리에 남아있는 데이터를 디스크에 저장하는 작업을 수행한다.

 

 

 

 이것이 sync작업이다.

 

 

 

 

⑥ 시스템종료에 관련된 정보를 /var/log/wtmp로그파일에 기록한다.

 

 

 

 “last reboot”을 실행해보면 시스템 재시작(종료)정보만을 확인할 수 있다.

 

 

 

 

⑦ 마운트(mount)되어있는 장치(device)파일들을 마운트해제(umount)한다.

 

 

 

 

⑧ 시스템을 종료한다.

 

 

 

 이 작업은 PID번호가 1번인 init프로세스를 종료하는 작업을 의미한다.

 

 

 

 

 

, 그럼 이제 shutdown을 사용하는 방법은 다음과 같다.

 

 

 

 참고로 shutdown명령어를 사용할 수 있는 사용자들을 지정할 수 있는데 /etc/shutdown.allow파일에서 설정하면 된다.

 

 

 

 

 

사용형식 : shutdown [-t sec] [-arkhncfFHP] time [warning-message]

 

 

 

 

-t : 다른 런레벨로 전환(종료 또는 재시작)하기 위하여 경고메시지 또는 종료시그널을 보내기 전에 몇초 동안 init프로세스를 기다리도록 한다.

 

 

 

 

-a : /etc/shutdown.allow파일을 사용한다.

 

 

 

 

-k : 실제로 종료하지 않고 모든 사용자에게 경고 메시지만을 보냄.

-r : 시스템 종료후에 재부팅한다.

 

(reboot)

 

 

-h : 시스템을 종료하며 재부팅을 하지 않는다.

 

(halt)

 

 

-f : 재부팅할때 파일시스템체크(fsck, e2fsck) (FSCK : File System Check)를 하지 않음.

 

 

-c : 이전에 내렸던 shutdown명령을 취소한다.

 

 

 

 

time : 언제 shutdown작업을 수행할 것인가를 지정한다.

 

 

 

 아래 추가설명 필히 참조.

 

 

warning-message : 사용자에게 보내질 종료 메시지.

 

 

 

위에서 time은 두가지 형식으로 지정할 수 있다.

 

 

 

 첫번째는 HH:MM형식으로 :으로 예를들어 10:30이면 10시 30 의미하며 shutdown수행을 10시 30 수행하라는 의미이다.

 

 

 

 두번째는 +M은 몇분 후에 shutdown을 수행할 것인가를 지정하는 것으로 +5 5분후에 +20 20분 후에 shutdown을 수행하게 된다.

 

 

 

 그리고 time값이 “now”이면 “+0”이라는 의미가 된다.

 

 

 

 한가지 주의할 것은 time항목의 값은 반드시 지정해야한다는 점이다.

 

 

 

 많은 사용자들이 time값 지정하는 것을 잘 잊어버린다.

 

 

 

 주의하도록 한다.

 

 

 

 

 

, 그럼 shutdown의 사용예를 보도록 하자.

 

 

 

# shutdown -h +5 system halting…

 

“system halting...”이라는 메시지를 로그인한 모든 사용자들에게 알리고 현재부터 5분 후에 시스템을 종료한다.

 

 

 

 다음 실행예를 보자.

 

 

 

[root@sulinux ~]#shutdown -h +5 system halting…

Broadcast message from root (pts/0) (Thu Feb 26 22:33:39 2009):

system halting…

The system is going DOWN for system halt in 5 minutes!

 

# shutdown -c

 

현재 실행되어 있는 shutdown작업을 취소하게 된다.

 

 

 

 방금 앞에서 실행했던 shutdown작업은 shutdown명령을 실행한 직후부터 5분후에 실제로 종료작업을 시작한다.

 

 

 

 이 때에 실제 종료작업에 들어가기 전까지 “shutdown -c”를 실행하면 종료작업이 취소되게 된다.

 

 

 

 

 

[root@sulinux ~]#ps -ef | grep shutdown

root      2545  2387  0 22:33 pts/0    00:00:00 shutdown -h +5 system halting…

root      2548  2504  0 22:34 pts/1    00:00:00 grep --colour=auto shutdown

[root@sulinux ~]#

[root@sulinux ~]#shutdown -c

[root@sulinux ~]#

[root@sulinux ~]#ps -ef | grep shutdown

root      2554  2504  0 22:34 pts/1    00:00:00 grep --colour=auto shutdown

[root@sulinux ~]#

 

 

 

 

확인한 바와같이 실행되어있는 shutdown프로세스를 “shutdown -c”를 실행하여 취소하였다.

 

 

 

 그리고 다시한번 ps명령어로 shutdown프로세스를 확인하였으나 이미 취소하였기 때문에 나타나지는 않는다.

 

 

 

 즉 예정되어 있던 시스템을 종료작업이 취소되었음을 알 수 있다.

 

 

 

 

 

# shutdown -r +5 system rebooting...

 

 

 

“system rebooting…”이라는 메시지를 보여주고 5분 후에 시스템을 재시작한다.

 

 

 

 

 

[root@sulinux ~]#shutdown -r +5 system rebooting...

Broadcast message from root (pts/0) (Thu Feb 26 22:35:38 2009):

system rebooting...

The system is going DOWN for reboot in 5 minutes!

 

 

 

 

이밖에 다음과 같은 방법들을 사용할 수 있다.

 

 

 

 

 

[root@sulinux ~]# shutdown -r 10:00 system will be rebooted

 

 

 

“system will be rebooted”이라는 메시지와 함께 돌아오는 10 정각 시스템을 재부팅한다.

 

 

 

 

 

[root@sulinux ~]# shutdown -h 20:30 system will be halted

 

 

 

“system will be halted”라는 메시지와 함께 돌아오는 20시 30 시스템을 완전 종료하게 된다.

 

 

 

 

 

[root@sulinux ~]# shutdown -r now

 

 

 

굉장히 흔하게 사용하는 방법으로서 시스템을 즉시(now) 재부팅(-r, reboot)하는 shutdown 작업이다.

 

 

 

 대부분의 시스템관리자들은 시스템을 재부팅하는 방법으로서 reboot을 실행하거나 또는 “shutdown -r now”를 실행한다.

 

 

 

 

 

[root@sulinux ~]# shutdown -h now

 

 

 

이 또한 굉장히 많이 사용되는 방법으로서 시스템을 즉시(now) 종료(-h, halt)하는 작업이다.

 

 

 

 대부분의 시스템관리자들은 시스템을 종료할 때에는 halt를 실행하거나 또는 “shutdown -h now”를 실행한다.

 

 

 

 

 

이제 여러분들은 리눅스시스템을 종료하거나 재시작하는 방법을 배웠다.

 

 

 

 이후 부터는 어떤 상황에서도 여러분들이 원할 때 시스템을 종료하거나 재시작할 수 있어야 할 것이다.

 

 

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,076 명
  • 현재 강좌수 :  36,001 개
  • 현재 접속자 :  468 명