리눅스 서버 - shutdown 과 reboot 명령의 차이, 리눅스 서버의 안전한 시스템 종료, 부팅
이 름 : 바다아이
|
조회수 : 10084
짧은 주소 : https://www.bada-ie.com/su/?351591801933
"shutdown"과 "reboot" 명령의 차이
/etc/shutdown 및 /etc/reboot는 모두 시스템을 중지하거나 다시 부팅할 때
사용할 수 있습니다. 시스템을 사용 중인 사용자 수, 시스템 종료에 필요한 시간
및 시스템을 작동 중인 실행 레벨 같은 여러 가지 요인에 따라 명령을 선택하여
사용합니다.
"shutdown"은 대개 시스템이 실행 레벨 2와 같은 다중 사용자 상태에 있는 경우에
사용합니다. 이 명령에서는 실행 중인 프로세스를 "kill -15"를 사용하여
종료합니다. 이렇게 하면 프로세스는 기본적으로 60초의 유예 기간 내에 종료되고
파일 시스템의 무결성이 보장됩니다.
"shutdown"을 사용하면 다음 작업도 수행할 수 있습니다.
* 현재 작업 디렉토리를 "/"로 변경합니다.
* 모든 수퍼블록을 업데이트합니다.
* 처리 중인 부속 시스템을 종료합니다.
* 모든 데몬 프로세스를 중지합니다.
* 모든 I/O 버퍼의 내용을 디스크에 기록합니다.
* 모든 파일 시스템을 언마운트합니다.
마지막으로, 시스템은 단일 사용자 모드(실행 레벨 s)로 전환되고 가능한 경우
/etc/reboot를 호출합니다.
"shutdown"을 사용하는 경우 수퍼유저는 현재 시스템에 로그인한 모든 사용자에게
시스템이 종료될 것임을 알릴 수 있고 시스템 종료 작업을 시작하기 전에
사용자가 로그아웃할 수 있도록 유예 기간을 지정할 수 있습니다.
시스템 관리자는 /etc/shutdown.d 디렉토리에 있는 사용자 제공 스크립트를
사용하여 시스템 종료 절차를 사용자 지정할 수 있습니다. 이 기능은 시스템을
종료하기 전에 데이터베이스를 종료해야 하는 것과 같은 시스템 종료 요구 사항을
지정한 사용자에게 필요합니다.
시스템 관리자는 특정 사용자에게 "shutdown" 명령을 실행할 수 있도록 권한을
부여할 수도 있습니다. 이 경우 /etc/shutdown.allow 파일을 적절하게 편집합니다.
그러나 다른 사용자에게 "shutdown"을 사용하여 시스템을 정지하거나 다시 부팅할
수 있는 권한을 부여한 경우에도 수퍼유저만 시스템을 단일 사용자 모드로 전환할
수 있습니다.
"reboot" 명령은 대개 단일 사용자 모드에 있는 시스템을 다시 부팅하거나
정지하는 데 사용합니다. 이 명령의 기본 동작은 모든 디스크를 "동기화"하고
시스템을 다시 부팅하는 것입니다.
이 명령에서는 "kill -9"를 사용하여 현재 실행 중인 프로세스를 즉시 종료합니다.
이 경우 프로세스를 안전하게 종료할 수 없으므로 데이터 손실 같은 원하지 않은
결과가 발생할 수도 있습니다.
모든 프로세스를 유예 기간 없이 종료하므로 "reboot"는 "shutdown"보다 실행
속도가 빠르며 시스템 관리자는 시스템을 매우 빠르게 종료해야 하는 경우에 이
명령을 사용할 수 있습니다.
"reboot" 명령을 사용하는 경우 수퍼유저는 시스템을 정지하거나 다시 부팅하기
위한 일정한 시간을 지정할 수도 있으며 현재 로그온한 사용자에게 메시지를
전송하여 시스템을 곧 정지하거나 다시 부팅할 예정임을 알릴 수도 있습니다.
"shutdown" 및 "reboot"에 대한 자세한 내용은 매뉴얼에서 shutdown(1m) 및
reboot(1m)에 대한 페이지를 각각 참조하십시오.
시스템관리를 하다보면 여러 가지 필요(시스템 업그레이드 및 패치등)에 의해서 시스템을 종료시켜야하는 경우가 있으며 이때에는 /sbin/shutdown이란 명령어를 사용한다.
시스템을 종료하기 위해서는 shutdown을 시스템 관리자가 내리게 되면 운영체제(정확하게는 커널)는 다소 복잡한 과정을 거쳐서 시스템을 종료하게, 이는 다중운영체제의 필수요건인 다중사용자와 멀티태스킹, 멀티스래드등의 이유로 인하여 실행되고 있는 프로세스들을 중지하고 로그인되어 있는 사용자들이 모두 로그아웃해야 하며 메모리에 있는 저장되어 있는 데이터를 디스크로 저장해야하는 것등의 작업에 많은 시간과 과정이 안전하게 이루어져야하기때문이다.
관리자가 시스템을 종료할때의 작업순서와 shutdown을 했을 때 커널에서 내부적으로 이루어지는 작업은 다음과 같다.
① shutdown 하기전에 sync작업을 한다.
② shutdown을 하게되면 다음과 같은 작업이 이루어 진다.
ⓐ 접속해 있는 사용자들에게 시스템이 종료된다는 메시지를 보낸다.
ⓑ 새로운 사용자의 로그인을 금지한다.
ⓒ 지정된 시간내에 종료되지 않은 프로세스를 강제종료한다.
ⓓ 지정된 시간내에 로그아웃하지 않은 사용자를 강제종료한다.
ⓔ 메모리 남아있는 데이터를 디스크에 저장한다.(디스크동기화)
ⓕ 시스템에 종료에 관련된 정보를 시스템 로그파일에 기록한다.
ⓖ mount되어 있는 디바이스들을 umount한다.
ⓗ 시스템을 종료한다.
● shutdown의 형식
/sbin/shutdown [-t sec] [-rkhncfF] time [warning-message]
-k : 실제로 종료하지 않고 모든 사용자에게 경고 메시지만을 보낸다.
-r : 시스템 종료후에 재부팅을 한다.(reboot)
-h : shutdown 후에 시스템을 종료해 버린다.(halt)
-f : 재부팅할 때 fsck(file system check)를 하지 않는다.
-c : shutdown명령어를 취소한다.
time : 몇분후에 시스템을 종료할 것인가를 지정한다.
warning-message : 사용자에게 보내질 종료 메시지.
몇가지 shutdown 명령어에 대해 예를 들어 보도록 하자.
예1) $ shutdown -h -t 5 "System down for regular maintenance"
접속한 사용자에게 경고메시지를 보내고 5분후에 시스템을 종료한다.
예2) $ shutdown +30 "System down for regular maintenance"
p.s
저야 개인 서버니까 그냥 막 끔니다만 ^^; 혹시 모르니까.... 중요한 서버에서는 ...
웹서버 중지..
데이터베이스 서버 중지...
기타 중요한 서비스 중지..
그 다음 shutdown 하세요...
그래야 데이타 유실이 없습니다.
|
|
번 호
카테고리
제 목
이름
조회수
Copyright ⓒ 2001.12. bada-ie.com. All rights reserved.
이 사이트는 리눅스에서 firefox 기준으로 작성되었습니다. 기타 브라우저에서는 다르게 보일 수 있습니다.
[ Ubuntu + GoLang + PostgreSQL + Mariadb ]
서버위치 : 오라클 클라우드 춘천 실행시간 : 0.05947 초 to webmaster... gogo sea. gogo sea.