728x90
반응형
sysrq란?


- kernel의 정보를 나타나게 하는 콤보 키

- kernel이 어떤 동작을 하던중이라도 사용자의 요청에 Blocking 없이 특별한 명령을 처리하는 기능을 제공
(특별한 명령은 시스템 강제종료, 파일 시스템 Read Only Mount, Memory 정보 Dump 등이 있다)

- 해당 기능은 Magic System Request Key라는 것을 통해 제공되는데 ALT + SysRq + "Key" 조합으로 사용


1. SysRq 기능 활성 상태 확인 

# cat /proc/sys/kernel/sysrq
-> 여의 값이 0일 경우 비활성화, 1일경우 활성화

* 0과 1을 제외한 나머지 옵션 값
2 - 콘솔 로깅 수준 제어 가능
4 - 키보드 제어 가능 (SAK, 언 로우)
8 - 프로세스 등의 디버깅 덤프 사용 가능
16 - enable sync 명령
32 - 다시 마운트 읽기 전용 사용
64 - 프로세스 시그널링 가능 (term, kill, oom-kill)
128 - 재부팅 / 전원 끄기 허용
256 - 모든 RT 작업의 경계 설정 허용


2. SysRq 적용

# echo 1 > /porc/sys/kernel/sysrq -> 활성화
# echo 0 > /porc/sys/kernel/sysrq -> 비활성화

* echo로 값을 설정한 경우는 임시적인 값이므로 영구적으로 사용하고 싶다면 /etc/sysctl.conf에 해당 내용을 설정해야 한다.
# vim /etc/sysctl.conf
kernel.sysrq=1
-> SysRq기능을 사용하면 일부 물리 콘솔을 접근할 수 있는 계정들에 특정한 기능이 추가되기 때문에 보안상 문제가 생길 가능성도 있다.


3. SysRq 사용

Alt + PrtSc(Sys Rq) + "Key" -> 키보드로 진행시 X Windows 환경에서는 사용불가니 멀티유저 모드에서 사용해야 한다.
또는
# echo u > /proc/sysrq-trigger

* 구동 원리
SysRq 명령이 실행되면 kernel은 해당 정보를 kernel ring buffer에 넣고 system console에 나타나게 한다.
모통 이 정보들은 syslog를 통해 /var/log/messages에 출력 (syslog가 실행중이지 않는다면 출력되지 않는다)

* 키 명령
m : 메모리 할당에 대한 정보를 덤프
t : 현재 작업 및 해당 정보의 목록을 덤프
p : 현재 CPU의 Registers와 Flags를 덤프
c : 의도적으로 system을 crash 시킴 (diskdump나 netdump를 사용할 시 유용)
s : mount된 모든 file system을 즉시 동기화
u : mount된 모든 file system을 read-only 모드로 remount
b : 디스크를 동기화하거나 마운트 해제하지 않고 즉시 시스템을 재부팅
o : 즉시 poweroff
f : Out Of Memory Killer 가동 (OOM)
e : init을 제외한 모든 프로세스에 SIGTERM을 보냄
i : init을 제외한 모든 프로세스에 SIGKILL을 보냄
k : SAK (Secure Access Key) 현재 가상 콘솔의 모든 프로그램을 강제 종료
n : RT 작업을 할때 사용
w : 중지되지 않은 상태의 작업을 덤프
z : ftrace 버퍼 덤프
j : Fifreeze ioctl에 의해 잠긴 파일 시스템을 강제로 품
g : ppc 및 sh 플랫폼에서 kgdb가 사용
d : 잠긴 모든 것들을 표시
q : 모든 hrtimers 및 CPU 클럭 장치의 이벤트를 덤프



반응형

'Linux' 카테고리의 다른 글

Linux IPMI Log로 HW 장애 확인  (0) 2018.08.28
Linux Kdump 구성 (Rhel 6)  (0) 2018.08.23
Linux rar 압축풀기  (1) 2018.08.17
Linux kpartx  (0) 2018.08.17
Linux Chome 새로고침 명령어  (0) 2018.08.14

+ Recent posts