티스토리 뷰

앞의 글에서 리눅스 시스템이 시작할 때 init 프로세스에 대해 살펴봤다. 나중에 부팅과정에 대해 보다 자세히 알아보기로 하고, 이번 글에서는 시스템의 종료와 재시작에 대해 살펴보기로 하자. 리눅스 시스템은 종료할 때 아무렇게 전원을 끄면 안된다. 그 이유는 작동중인 프로세스들에게 시스템 종료 신호를 전달하고 현재 작동중인 프로그램이 중지되도록 해야 하기 때문이다. 만약 그렇지 않을 경우에는 예상치 못한 결과를 유발할 수 있다. 시스템을 종료하거나 재시작할 수 있는 여러가지 옵션이 있는데 한번 알아보기로 하자.

물론, 리눅스를 데스크탑으로 설치했다면 그냥 마우스로 [System] --> [Shut Down] 메뉴를 선택하면 된다.


보통 X-Window 환경이라면 아래의 그림처럼 [Shut Down] 버튼을 클릭하여 시스템을 종료하거나, [Restart] 버튼을 클릭하여 재시작할 수 있을 것이다.


하지만, 리눅스를 서버용 운영체제로 설치했다면 종료하거나 재부팅할 일은 별로 없다. 서버를 운영하다보면 리눅스 커널을 패치한다거나, 업그레이드 혹은 업데이트 작업을 수행하거나, 하드웨어 점검 등 여러가지 이유로 시스템을 종료 혹은 재시작할 일이 발생한다. 여기서는 터미널모드에서도 시스템의 종료 혹은 재시작이 가능하도록 TUI모드에서 사용하는 명령어에 대해 살펴보기로 한다.

shutdown 명령어 사용하기

먼저 시스템을 종료하거나 재시작하기 위해 'shutdown' 명령어를 사용하면 아래의 과정을 거치게 된다.
1. 접속중인 모든 사용자들에게 시스템 종료 메시지를 날린다.
2. 새로운 로그인을 금지시킨다.
3. 지정된 시간내에 종료되지 않는 프로세스는 강제로 kill 한다.
4. 지정된 시간내에 로그아웃하지 않는 사용자들을 강제로 로그아웃시킨다.
5. 데이터 동기화작업(sync)을 수행한다.
6. 시스템 종료에 관한 정보를 로그파일이 있는 /var/log/wtmp 에 기록한다.
7. mount 되어있는 장치(device) 들을 모두 unmount 한다.
8. init 0 프로세스를 실행하여 시스템을 종료한다.

먼저, 'shutdown' 명령어를 'help'로 살펴보자. 'shutdown' 명령어는 /sbin/shutdown 에 있다.

shutdown --help

'shutdown' 에서 사용할 수 있는 사용법은 아래와 같다.

shutdown [OPTION] ...TIME [MESSAGE]

사용할 수 있는 옵션은 -krhfc 등이 있으며, -t sec 도 사용할 수 있고, 경고 메시지도 보낼 수 있다.

1) -t sec --> 다른 runlevel 로 변경되기 전에 경고를 내보내는 프로세스와 kill 시그널 사이의 기다리는 시간(단위는 초)
2) -k --> 시스템에 접속된 모든 사용자드에게 경고 메시지만 전달
3) -r --> shutdown 후 재부팅
4) -h --> shutdown 후 시스템 정지
5) -f --> 재부팅 과정에서 fsck(File System Check)를 실행하지 않음
6) -c --> 실행중인 shutdown 취소
7) TIME 은 두가지 형식으로 지정할 수 있다. 하나는 'HH:MM' 으로서 '시:분'형식이다.
8) Message --> 사용자들에게 보내질 종료 메시지

사용예)

shutdown -h +5 System Halting...

사용자들에게 'System Halting...'이라는 메시지를 현재 로그인한 모든 사용자들에게 보내고, 현재부터 5분뒤에 시스템을 종료한다.

shutdown -c

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

shutdown -r +5 System Rebooting...

현재 로그인한 사용자들에게 'System Rebooting...'이라는 메시지를 보내고 지금부터 5분뒤에 시스템을 재시작한다.

shutdown -r 12:00 System will be rebooted in 12:00

현재 로그인한 사용자들에게 'System will be rebooted in 12:00' 메시지를 보내고 12:00 에 시스템을 재시작한다.

그렇다면 지금 당장 시스템을 종료하려면 어떻게 할까? 'now'를 사용한다.

shutdown -h now

역시 동일하게 지금 바로 시스템을 재시작하려면 아래와 같이 한다.

shutdown -r now


시스템 재시작하기

시스템을 재시작하기 위해서는 아래의 명령어들중 하나를 사용할 수 있다.

-reboot
-shutdown -r now
-init 6

이중에서 시스템 엔지니어들이 가장 많이 사용하는 명령어는 단연 'reboot'이다.

reboot


시스템 종료하기

시스템을 종료하기 위해서는 아래의 명령어들중 하나를 사용할 수 있다.

-halt
-shutdown -h now
-poweroff
-init 0

이중에서 가장 간단하게 시스템을 종료하는 방법은 글자수가 가장 적은 'halt' 일것이다. 'halt' 는 아직 정해지지 않은 디스크의 운영 상태를 완료시키고, /var/log/wtmp 에 로그인과 로그아웃에 관한 내용을 저장하며 커널에게 재부트할지 시스템을 종료할지를 아려 시스템을 안전하게 종료하게 하는 명령어이다.

halt

시스템을 종료하기 전에 현재 메모리에 남아 있으면서 디스크에 저장되지 않은 데이터들을 디스크로 저장하는 작업을 수행하는데 이런 작업을 'sync'라고 한다. 안전하게 시스템을 재시작 혹은 종료하게 되면 sync 작업을 수행하게 되는데, 만일 sync 작업을 수행하지 않고 시스템을 종료하려면 -n 옵션을 사용하면 된다. 물론 저장되지 않은 데이터를 잃을 수 있다. 'poweroff' 명령어도 sync 작업을 수행하지 않으려면,'poweroff -n' 을 사용하면 된다.

halt -n

마지막으로 시스템종료와 함께 시스템전원을 끄려고 한다면 -p 옵션을 사용한다. 윈도우즈만 우리는 맨날 써봐서 잘 이해가 안될 수도 있지만, 운영체제 입장에서는 시스템을 종료한다는 것이 반드시 시스템 전원을 오프한다는 의미는 아니다. 따라서 시스템을 종료할 때 시스템 전원도 오프하길 원할 때는 보통 'poweroff' 명령어를 수행하거나 아니면 아래와 같이 하면 된다.

halt -p


시스템 매직키를 이용하기

리눅스에도 매직키가 있다. 거의 모든 리눅스에서 사용하고 있는데 매직키가 여러가지 있지만 여기서는 시스템 종료에 대한 매직키를 설명하고자 한다. 시스템을 종료하는 매직키는 Ctrl + Alt + Del 키이다. 리눅스에서는 'ctrlaltdel' 이라고 하는데, 리눅스 부팅할 때 실행 및 적용되는 '/etc/inittab' 파일내에 주로 사용된다. 다음은 '/etc/inittab'파일에 정의되어 있는 매직키에 대한 설정내용이다.

grep ctrlaltdel /etc/inittab
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

만일 Fedora 13 버전을 사용한다면 ctrlaltdel 매직키는 다른 파일에 있다. 그 파일은 '/etc/init/control-alt-delete.conf' 이다. 그 파일을 열어보자.

cat /etc/init/control-alt-delete.conf


그래서 Ctrl + Alt + Del 을 실행시키면 아래의 그림이 나타나게 된다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함