2010년 11월 22일 월요일

리눅스에서 강제 리부팅이 필요한 경우에는...

리눅스 시스템에서 부팅이나 기타 명령어를 수행하고자 할때 응답이 없는
경우가 있다. 프로세스를 kill 하려고 해도 죽지 않거나 sync or reboot 를
해도 그냥 멈춰 있는 경우를 가끔 경험하는 때가 있다.

# reboot

Broadcast message from root@xxxx (pts/4) (Mon Nov  8 16:45:00 2010):

The system is going down for reboot NOW!


이럴때 강제적으로 리부팅하는 하는 방법이 있다. 다음과 같이 설정하여
강제적으로 리부팅이 가능하다.

echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger

sysrq 에 값을 셋팅하는데 sysrq 는 무엇일까? sysrq.c 에 기술된 내용을 보면
다음과 같다:

*  What is the magic SysRq key?

Fix Unresponsive or Frozen Linux Computers using Shortcuts

이미지출처 : www.makeuseof.com


It is a 'magical' key combo you can hit which the kernel will respond to regardless of whatever else it is doing, unless it is completely locked up.

즉, 매직키와 같은 것으로 솔라리스 계열의 스팍 시스템 키보드를 보면
Stop 키가 있다. Alt-Stop-<command key> 를 누르면 특정 명령이 수행되는
형태와 같은 것이다.  이 command key 는 사전에 정의된 것으로
'b' 는 syncing 또는 언마운트 없이 즉시 리부팅을 수행하고, 'e' 는
init 를 제외한 모든 프로세스에 SIGTERM 을 보낸다.

위 예와 같이 sysrq 에 1을 설정하여 enable 상태를 만들고 sysrq-trigger에
b 명령어를 보내 즉시 리부팅을 수행하도록 한다.

[참고]
1. Magic SysRq key
http://en.wikipedia.org/wiki/Magic_SysRq_key

댓글 1개: