- Today
- Total
Phantom
시스템 종료 과정 본문
오늘 포스팅할 내용은 리눅스 시스템의 종료 과정을 하겠습니다. 리눅스 시스템을 종료 할 때는 종료 명령을 사용하지 않고 전원을 끄면 안됩니다. 다른 시스템들도 마찬가지겠지만 그냥 전원을 끄게되면 데이터가 손상되거나 깨질 수 있고 OS파일도 깨질 수 있으며 하드디스크 등등이 손상이 됩니다. 무엇보다도 작동 중인 프로세스에 시스템 종료 신호를 전달하고 현재 작동 중인 프로그램이 중지되도록 하지 않으면, 예상치 못한 시스템의 문제를 발생시킬 수 있기 때문입니다. 리눅스에서의 시스템을 종료시키는 방법은 3가지 정도가 있는데요.
----------------------------------------------------------------------------------------------------------------------------------
1. Shutdown
먼저 shutdown 이라는 것은 사용자들에게 시스템 종료에 대처할 수 있도록 시간적인 여유와 메시지를 전달하는 기능을 가진 명령어입니다. 이 명령어는 reboot이나 halt등에 비해 다양한 시스템 종료 방법을 제공하며, 오직 root만이 실행할 수 있습니다.
shutdown 명령이 실행된 이후의 시스템 종료 절차는 다음과 같습니다.
- shutdown 하기 전에 sync 작업을 합니다.
- 접속해 있는 사용자들에게 시스템이 종료된다는 메시지를 전달합니다.
- 새로운 사용자의 로그인을 금지합니다.
- 지정된 시간 내에 종료되지 않은 프로세스를 강제 종료합니다.
- 지정된 시간 내에 로그아웃하지 않은 사용자를 강제 종료합니다.
- 메모리에 남아있는 데이터를 디스크에 저장합니다.
- 시스템 종료와 관련된 정보를 시스템 로그 파일에 기록합니다
- 마운트 되어 있는 디바이스들을 언마운트합니다.
- 시스템을 종료합니다.
shutdown의 사용법은 다음과 같습니다.
/sbin/shutdown [-krhfc][-t sec] time [경고메시지]
shutdown 에 사용되는 옵션을 설명하겠습니다.
-t sec : 다른 Runlevel로 바뀌기 전에 경고를 내보내는 프로세스와 kill 시그너 사이의 기다리는 시간(단위/초)
-k : 시스템에 접속된 모든 사용자에게 경고 메시지만 전달
-r : shutdown 후 재부팅
-h : shutdown 후 시스템 정지
-f : 재부팅 과정에서 fsck(File System Check)를 실행하지 않음
-c : 실행중인 shutdown 취소
----------------------------------------------------------------------------------------------------------------------------------
2. halt
halt 명령어는 아직 정해지지 않은 디스크의 운영 상태를 완료시키고 /var/log/wtmp에 로그인과 로그아웃에 관한 내용을 저장하며, 커널에 재부트 할지, 시스템을 종료할지를 알려 시스템을 안전하게 종료합니다. "shutdown -h now"와 같은 명렁어입니다.
halt명령어는 /sbin/halt에 있습니다.
----------------------------------------------------------------------------------------------------------------------------------
ctrl + alt + delete
이 키는 /etc/inittab 파일 가운데 다음의 항목을 추가해주면, 이 키로 재부팅이 가능합니다.
ca::ctrlaltdel:/sbin/shutdown -t 3 -r now
이 키는 reboot명령을 입력한 것과 같은 결과를 보여줍니다. 그러나 일반 사용자에게 이 명령의 실행 권한을 부여해 준다면 망합니다...망해요 ㄷ 함부로 시스템을 재부트하여 커다란 손해를 보게될것이옵니다.....
그래서 shutdown명령어를 -a옵션과 함께 사용하며, /etc/inittab 파일 안에 정의해야 합니다.
ca::ctrlaltdel:/sbin/shutdown -t 3 -ra now
----------------------------------------------------------------------------------------------------------------------------------
'프로그래밍에 대한 정보들' 카테고리의 다른 글
줄리안(Julian) 일자 (0) | 2013.05.02 |
---|---|
리눅스 프롬프트의 의미 (0) | 2013.05.02 |
부팅 후 현재까지의 시스템 가동시간 알아보기 (0) | 2013.05.02 |
기본 명령어 2 (0) | 2013.05.01 |
부팅 후 현재까지의 시스템 가동시간 알아보기-uptime 명령어 (0) | 2013.04.30 |