Friday, April 13, 2018

CentOS 6.6 리눅스 관리] 8. 시스템 부팅 및 셧다운 (System Booting & Shutdown)

안녕하세요. 썬구루입니다.

이 게시물에서는 시스템 부팅 및 셧다운에 대해 알아볼 것입니다. 원론적인 내용이 아닌 간단하게 시스템을 어떻게 켜고 끄는지  그리고 그에 대한 명령과 파일에 대해 알아볼 것입니다. 원론적인 것은 기초, 관리, 네트워크, 쉘 프로그래밍을 다 알고 나서 좀 더 전문적인 기술을 습득하기 위해 알아도 되니까요.

서버는 보통 타워 형(Tower)과 랙 형(Rack)으로 나뉩니다. 타워형은 데스크톱처럼 세워서 사용하는 것이죠. 보통 그래픽 같은 고성능을 요구하는 작업에 사용되는 워크스테이션이 타워형으로 되어 있습니다. 랙 형은 전용 서버 랙에 접시 쌓듯 쌓아두는 것이죠. 보통 아래 전산실과 같이 겁나게 잘 정리되어 있지 않습니다. 큰 대기업이나 주요 국가 관공서는 이렇게 되어 있죠. 보통 랜선으로 거미줄 친 곳이 많이 있어요.

상면 공간의 효율적 사용을 위해 서버, 스토리지, 네트워크 같은 전산 장비는 요즘은 관공서에 전용 전산기계실이나 기업의 전산기계실 또는 IDC 센터에 보관, 운영합니다. 왜냐하면 수많은 장비들을 돌리기 위해 많은 용량의 전기를 사용해야 하고 기계들을 위해 최적의 습도와 온도를 유지해야 하기 때문에 전용 전산기계실이 필요하기 때문이죠.

이런 전산기계실에서 여러분들이 아래와 같은 서버 장비를 각종 공구(특히 십자드라이버)들을 이용하여 서버 랙(Server Rack)에 장착했다고 가정하죠. 그리고 네트워크 스위치에서 랜선을 끌어다가 서버에 연결하고 전원 공급장치(Power Supply)에 전선을 연결한 후 그다음은..? 보통 서버는 전원 공급장치가 이중화 되어 있습니다. 다시 말해 파워 서플라이가 2개 이상이라는 것..


전원이 공급되면 후면부와 전면부 LED에 불이 들어옵니다. 서버 전면부 좌측 또는 우측에 있는 전원 버튼(Power button)에 주황색 불이 들어오며 이것을 누르면 서버가 켜집니다. 위~~~잉.. 하는 비행기 날아가는 소리와 함께요... 전원 켜는 방법은 PC와 비슷합니다.  RAID 컨트롤러 BIOS로 들어가 디스크를 RAID 1 또는 RAID 5로 묶은 후 DVD ROM에 CentOS 또는 RHEL 리눅스 설치 DVD를 넣고 처음 우리가 CentOS를 설치한 데로 설치하면 됩니다.

운영체제를 설치한 후 각종 서비스에 필요한 응용프로그램을 설치하겠죠. 그리고 개발자분들이 서버에 달라붙어서 서비스를 위한 개발을 한 후에 서버가 정식 운영됩니다.


전기 증설 작업 또는 CPU/메모리 업그레이드 작업을 해야 할 경우 시스템을 꺼야 할 것이고 특정 프로그램 설치는 시스템 리부팅을 요구하는 경우도 있습니다. 이를 위해 init, shutdown, reboot, halt 명령을 사용하는 것이죠. 우리는 이 명령에 대해 알아보려 합니다.

■ 런레벨 (Run Level)

리눅스나 유닉스 운영체제의 모든 프로세스의 시조는 init 프로세스이다. 이것은 커널에 의해 실행되는데 시스템 시작 시 init 프로세스는 서비스에 필요한 프로세스들을 실행하여 메모리상에 올리는데 런레벨(Run Level)은 init의 서비스 실행을 단계적으로 구분한 것을 말한다. 또는 이를 동작 레벨이라고 하기도 한다. 기본 런레벨은 5이다.

런레벨 (Run Level)
내 용
0
 시스템 종료를 나타낸다. halt
1
 단일 사용자 모드를 나타낸다. 보통 관리자가 시스템 관리를 위해 전환하는 레벨이다.
2
 다중 사용자 모드를 나타낸다. 단 NFS 서버 서비스는 이 레벨에서 자동 실행되지는 않는다.
3
 다중 사용자 모드를 나타낸다. NFS 서버 서비스가 자동 실행된다.
4
 예약되어 있고 사용되지 않는다. 
5
 X11 즉 X Window가 설치되는 모드를 나타낸다.
6
 시스템 리부팅을 나타낸다. reboot




■ 런레벨 (Run Level) 확인 명령

who는 현재 시스템에 접속한 사용자를 확인하기 위해 사용되지만 -r 옵션을 사용하면 현재 런레벨을 알 수 있다. 출력 형식은 아래와 같다.

현재 런레벨         현재 런레벨 전환 시간     이전 런레벨

runlevel 명령도 현재 런레벨을 확인하기 위해 사용한다. 출력 형식은 아래와 같다.

이전 런레벨         현재 런레벨

[root@sunguru ~]# who -r
         run-level 5  2016-07-09 16:25                   last=3
[root@sunguru ~]# runlevel
3 5
[root@sunguru ~]# 

■ init 명령

init 명령은 프로세스 관리 데몬을 실행시키기 위해 사용된다. 다시 말해 런레벨 전환을 위해 사용된다.

1). 명령 형식

init  런레벨

2). 예제

[root@sunguru ~]# init 3

root 로 로그인

[root@sunguru ~]# init 5

root로 로그인

[root@sunguru ~]# who -r
         run-level 5  2016-07-09 16:25                   last=3
[root@sunguru ~]# runlevel
3 5
[root@sunguru ~]# init 0

■ shutdown 명령

이 명령은 시스템을 종료 또는 리부팅하기 위해 사용되는 명령이다.

1). 명령 형식

shutdown [옵션] 시간 [메세지]

2). 옵션

옵 션
내 용
-h
 시스템 종료를 나타낸다. halt 
-r
 시스템을 리부팅한다. reboot
-k
 실제 shutdown 명령을 실행하는 것이 아닌 사용자에게 shutdown 메세지만 전달한다.
-c
 실행 중인 shutdown 명령을 취소한다.
시간
 shutdown 명령이 실행되는 시간을 설정한다. +분 또는 시간:분 을 사용할 수 있다. now는 지금 즉시를 나타낸다.
메세지
 접속한 사용자들에게 전달되는 메세지를 나타낸다.

3). 예제

아래는 실제 시스템 종료가 아닌 사용자에게 shutdown 메시지만 전달하기 위해 실행한 명령이다.

[root@sunguru ~]# shutdown -h -k +5 "shutdown after 5 minutes."
[root@sunguru ~]#
Broadcast message from root@centos01
 (/dev/pts/0) at 16:54 ...
The system is going down for maintenance in 5 minutes!
shutdown after 5 minutes.
[root@sunguru ~]# 

아래는 전달 메시지 없이 10분 후 리부팅을 하기 위해 실행한 명령이다. Ctrl + c를 누르면 명령을 취소할 수 있다.

[root@sunguru ~]# shutdown -r +10
Broadcast message from root@centos01
 (/dev/pts/0) at 17:04 ...
The system is going down for reboot in 10 minutes!
^Cshutdown: Shutdown cancelled
[root@sunguru ~]# 

아래는 오후 6시에 시스템 종료를 하기 위해 실행한 명령이다.

[root@sunguru ~]# shutdown -h 18:00 "shutdown at 18:00"
Broadcast message from root@centos01
 (/dev/pts/0) at 17:06 ...
The system is going down for halt in 54 minutes!
shutdown at 18:00
^Cshutdown: Shutdown cancelled
[root@sunguru ~]# 

아래는 지금 즉시 시스템 리부팅을 하기 위해 실행한 명령이다.

[root@sunguru ~]# shutdown -r now

■ reboot 명령

시스템을 리부팅하기 위해 사용되는 명령이다. 명령 실행은 아래와 같이 간단하게 실행된다.

[root@sunguru ~]# reboot

■ halt 명령

시스템을 종료하기 위해 사용되는 명령이다. 명령 실행은 아래와 같이 간단하게 실행된다.

[root@sunguru ~]# halt

이 게시물에서는 Start Script나 chkconfig 명령, /etc/inittab 파일 등에 대해서는 언급하지 않습니다. 이것에 대해서는 리눅스 네트워크를 설명한 다음 언급할 예정입니다. 왜냐하면 그때 필요하니까요. 지금 언급해봐야 이해 안 됨.. -_-;;

다음 게시물에서는 root 패스워드 복구에 대해 알아보도록 하겠습니다.






No comments:

Post a Comment