(10101101)173/UNIX2009. 4. 5. 12:26
페도라에서 시스템 종료를 하는 방법은 여러가지가 있습니다. shutdown, halt, init 등 입니다. 이 명령어들을 사용해 여러방법으로 시스템을 종료해 보도록 하겠습니다.

shutdown (/sbin/shutdown) 명령어로 종료
여러가지 옵션이 있는대 원초적인 명령인 "컴퓨터를 꺼라"에 합당한 옵션은 "-rhnf" 옵션 입니다. 나열하자면 다음과 같고 자세한 설명은 뒤쪽에 있습니다.

분류 안전, 비안전 옵션 설명
종료 안전 1. -r 시스템을 Reboot합니다.
2. -h 시스템을 종료 합니다. (Power off)
비 안전 3. -f Booting을 할때 Fastboot으로 실행되 fsck(File System Check)를 실행하지 않습니다.
4. -n init을 호출해서 종료하지 않고 바로 halt로 넘어가 종료하게 됩니다.
옵션
5. -k 시스템 모든 사용자에게 경고 메세지를 보입니다.
6. -c shutdown 명령을 취소합니다.

기본적으로 shutdown 명령어는 다음과 같은 방식으로 쓰입니다.
[root@FC10VM /]# shutdown [옵션] [시간] [메세지]

그러면 이제 시스템을 꺼보도록 하겠습니다.
[root@FC10VM /]# shutdown -r 10 "Admin message : System down ready, Run after 10 minutes"

[그림 1. shutdown 명령어 실행]
그림 1에서 shutdown 명령어로 시스템 종료를 알렸습니다. 그러자 해당 메세지를 다른 접속자들에게 전송했으며 명령을 내린 자신에게도 메시지를 보여주게 됩니다.

[그림 2. 다른 접속자에게 보여진 알림 메세지]
우선 빨간색 칸은 알림 메세지 부분입니다. Ctrl + C를 하게 되면 프롬프트로 나오게 되는대 만약 명령을 내린 곳에서 Ctrl  + C를 하게되면 "shutdown: Shutdown cancelled"란 메시지와 함깨 shutdown이 취소 됩니다. 즉 기본적으로 shutdown명령을 내린 사용자는 포그라운드로 실행이 됩니다. 때문에 그외에 다른 접속지에 사용자들은 알림 메시지로 인해 사라진 프롬프트를 Ctrl + C를 통해 보이도록 합니다. 명령을 내린 사용자는 포그라운드 이지만 그외의 사용자들은 백그라운드이기 때문에 이를 확인해 보기 위해 초록색 칸을 보면 ps 명령어로 shutdown명령이 실행중인지 확인해 봅니다. 보이는 내용 그대로 shutdown이 실행중입니다. 다른 root권한 사용자가 이를 취소하기 위해 노란색 표시부분인 "shutdown -c"로 shutdown 명령어를 취소하고 이를 확인해 봅니다. 이 내용은 보라색 부분입니다. 다른 root권한에 사용자라 shutdown을 취소하면 아래와 같이 명령을 내린 사용자 프롬프트에 "shutdow: Shutdown cancelled"라고 표시되며 shutdown이 중지되었습니다.

[그림 3. 다른 root권한 사용자에 의해 shutdown이 취소된 상태]

옵션에 자세한 설명을 하자면 1번부터 6번까지 있으며 안전과 비안전으로 나뉘어져 있습니다. 사실 3번에 -f 옵션은 그렇게 비안전은 아니나 그렇다고 안전한 방법도 아니기 때문에 비안전으로 포함했습니다.
1번에 -r  옵션은 Reset에 줄임 즉 시스템의 재시작 입니다.
2번에 -h 옵션은 시스템 종료 명령어로 Halt에 줄입닙니다.
3번에 -f 옵션은 Fastboot에 줄임으로 재실행시 FSCK를 실행하지 않아 빠른 부팅속도를 보장하게 되지만 시스템 입장에서
3번에 -f 찝찝한 감이 있습니다.
4번에 -n 옵션은 Now에 줄임으로 바로 shutdown에 들어가게 되는대 문제는 init을 호출하지 않고 shutdown명령어가 직접
4번에 -n 시스템을 종료시키기 때문에 최악의 경우 종료 후 나중에 다시 부팅할때 부팅이 안될수도 있는 상황이 발생할수도
4번에 -n 있습니다. 이는 init을 호출해서 단계적으로(프로세스를 종료하고 새로운 사용자의 접속을 차단하고 등) 종료되지
4번에 -n 않고 전원코드를 그냥 뽑은 것과 같은 효과를 가지기 때문입니다.
5번에 -k 옵션은 실제 종료를 실행하지 않고 메세지만 접속된 사용자들에게 보냅니다.
6번에 -c 옵션은 shutdown명령을 취소할때 사용합니다.

보통 많은 사람들이 흔하게 사용하는 shutdown명령은 다음과 같습니다.
[root@FC10VM /]# shutdown -r now
[root@FC10VM /]# shutdown -h now

즉시 재부팅 또는 즉시 종료 입니다. 이는 man shutdown으로 도움말을 확인해 보면 BUGS부분에 다음과 같은 말이 나옵니다.
"대부분의 사용자는 time 값 지정을 잊어버리고는 shutdown에서 보여주는 메시지를 오류 메시지로 착각한다.
이 값이 지정되지 않으면, runlevel 1을 수행한다는 것을 잊지 말기 바란다. 그리고 이 값은 90%가 now 사용할 것이다."

이 외에 몇시에 어떤 이유로 시스템을 종료 한다고 지정할수도 있습니다.
[root@FC10VM /]# shutdown -h 18:00 "오늘에 테스트는 현시각 이후로 종료됩니다."

Posted by Special Alex