본문 바로가기

Linux(OS)

시스템 종료와 재부팅

[시스템 종료와 재부팅]
시스템을 관리하다 보면 시스템을 종료하거나 재부팅을 해야 하는 경우가 있다.
시스템의 전원을 차단하여 종료하는 방법이 있지만, 데이터의 안전을 위하여 shutdown이나 reboot 등의 명령어를 이용하여 정상적인 과정으로 종료하거나 재부팅 하는 것이 좋다.
01. shutdown
shutdown 명령어는 시스템을 종료하거나 재부팅할 때 사용한다.
<사용법>
shutdown [옵션] [시간] [메시지]
<옵션>
-t n : 경고 메시지를 보낸 후 n초 후에 kill 시그널을 보낸다.
-h : shutdown시 halt를 실행하게 한다.
-n : 디스크 동기화 동작의 수행을 금지한다.
-r : 시스템을 재부팅한다.
-f : 다음 부팅시 파일 시스템 검사를 하지 않는다.
-c : 이미 예약되어 있는 shutdown를 취소한다. 이 옵션을 준다면 시간 인수는 줄 수 없다.
하지만 메시지는 사용자들에게 줄 수 있다.
-k : 모든 동작을 제대로 수행하지만, 실제로 시스템을 종료하지는 않는다.
shutdown 명령어를 이용하여 시스템을 종료해 보자. 가장 자주 사용되는 방식은 종료하는 명령인 shutdown –h now 이다.
# shutdown –h now
쉘 프롬프트에서 shutdown –h now를 입력하면 현재 접속된 모든 사용자에게 종료된다는 메시지를 보내고 종료하게 된다.
<예제>
# shutdown –h 10
10분 후에 시스템을 종료한다.
# shutdown –r now
시스템을 재부팅한다.
# shutdown –c
shutdown 명령으로 예약된 시스템 종료 명령을 취소할 수 있다.
02. halt
halt 역시 시스템을 종료할 때 사용한다.
<사용법>
halt [옵션]
<옵션>
-n : sync를 하지 않고 종료한다. –d 옵션도 포함한다.
-w : 실제로 종료는 하지 않지만, /var/log/wtmp 파일에 기록을 남긴다.
-d : wtmp 파일에 기록을 남기지 않는다.
-f : 강제로 종료한다.
halt 명령을 이용해 시스템을 종료해 보자.
# halt
아무 옵션 없이 사용하면 접속되어 있는 모든 사용자에게 메시지를 보내고 /var/log/wtmp 파일에 로그를 기록하고 종료된다.
03. init
리눅스 시스템이 가동되는 방법에는 0~6까지 7가지가 있다. 이를 런레벨(RUNLEVEL)이라고 한다.
각각의 런레벨은 다음과 같다.
런레벨
의 미
0
종료 모드
1
단일 사용자 모드(시스템 복구시에 사용한다.)
2
다중 사용자 텍스트 모드(NFS 사용 불가)
3
다중 사용자 텍스트 모드
4
사용 안함
5
다중 사용자 그래픽 모드
6
재부팅 모드
시스템이 부팅될 때의 모드는 /etc/inittab 파일의 id:5:initdefault: 부분에 숫자로 설정되어 있다.
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
리눅스 설치시 그래픽 모드로 설치를 했다면 기본 설정은 5번으로 다중 사용자 그래픽 모드로 부팅이 된다. 텍스트 모드로 설치했다면 3번으로 다중 사용자 텍스트 모드로 부팅이 된다.
변경하고 싶다면 숫자를 원하는 값으로 변경하면 된다.
id:5:initdefault:
다중 사용자 그래픽 모드로 부팅이 된다. 만약 일시적으로 변경을 원하면 init 명령을 이용하면 된다.
init 는 시스템의 런레벨을 변경하는 명령이다.
<사용법>
init [런레벨]
# init 0 : 시스템을 종료한다.
# init 3 : 다중 사용자 텍스트 모드로 전환한다.
# init 6 : 시스템을 재부팅한다.
<실습>
리눅스는 최초 설치되면 런레벨 5번으로 설정이 된다. 이를 3번 런레벨로 수정해서 리부팅하고 상태를 확인해 보자.
<실습> 런레벨 3번 상태에서 바로 # startx 명령어를 통해서 런레벨5번으로 가보자.(시스템은 런레벨3인것을 잊지 말자. 임시적으로 런레벨 5번 설정으로 가는 것이다.)
04. reboot
reboot 명령은 시스템을 재부팅 할 때 사용한다.
<사용법>
reboot [옵션]
<옵션>
-n : sync를 하지 않고 종료한다. –d 옵션도 포함한다.
-w : 실제로 재부팅은 하지 않지만, /var/log/wtmp 파일에 기록을 남긴다.
-d : wtmp 파일에 기록을 남기지 않는다.
-f : 강제로 재부팅 한다.
<예>
# reboot
로그를 남기지 않고 재부팅 한다.
# reboot –n
sync를 하지 않고 재부팅 한다.
05. 로그아웃
로그인된 상태에서 시스템을 재시작하지 않고 다른 사용자로 로그인 하려면 쉘프롬프트에서 logout 또는 exit 또는 logout 의 단축키인 [CTRL]+D 키를 입력한다.
# exit
# logout
로그인 상태에서 [CTRL]+D 단축키를 누르면 로그아웃 한다.
일반적으로 서버 작업을 위해서는 원격에서 ssh로 접속하여 일반 사용자로 로그인하고 su – 명령어로 수퍼유저(root)로 진입하여 root 쉘을 얻고 작업을 진행한다.
작업을 완료한 다음 root 쉘을 빠져나오기 위해서 매번 logout 이나 exit 명령어를 입력하는 것은 번거롭다. 간단히 [CTRL]+D 단축키를 누르면 root 쉘을 빠져나오고, su – 명령을 수행했던 일반유저의 쉘로 돌아간다.
다시 한번더 [CTRL]+D 를 누르면 ssh 원격 접속을 종료하게 된다.
리눅스 시스템을 관리하다보면 logout 입력 보다는 [CTRL]+D 단축키를 많이 사용하게 될 것이다.
06. 시스템 종료(shutdown)와 재부팅(rebooting) 명령어 정리
(01) 시스템 종료 명령어
# shutdown -h now
# init 0
# halt
# poweroff
(02) 시스템 재부팅 명령어
# reboot
# shutdown -r now
# init 6
http://cafe.naver.com/linuxlog
krintiz@naver.com

'Linux(OS)' 카테고리의 다른 글

리눅스 파일 관리  (0) 2011.06.22
리눅스 디렉토리 관리  (0) 2011.06.22
vi 편집기  (0) 2011.06.22
10g Managing Oracle on Linux for DBA Part.03  (0) 2011.06.17
10g Managing Oracle on Linux for DBA Part.02  (0) 2011.06.17