Linux中sysrq-trigger的妙用

文章目录

sysrq被称为魔术组合键,只要内核没有完全锁住,不管内核在做什么事情,使用这些组合键都可以搜集包括系统内存使用、CPU任务处理、进程运行状态等系统运行信息。 注意:信息的输出都在/var/log/message下

Linux如何模拟崩溃?如何强制关机?这时候就可以使用到本文提到的/proc/sysrq-trigger文件了。

  • 故意让系统崩溃,注意这不是重启,崩溃后只能从进行硬重启才能重连上系统。(产生空指针paincz事件,触发kdump,收集vmcore,会在/var/crash目录生成)

1
echo "c" > /proc/sysrq-trigger
  • 立即重新启动计算机

1
echo "b" > /proc/sysrq-trigger
  • 立即关闭计算机

1
echo "o" > /proc/sysrq-trigger
  • 导出内存分配的信息 (可以用/var/log/message 查看)

1
echo "m" > /proc/sysrq-trigger
  • 导出当前CPU寄存器信息和标志位的信息

1
echo "p" > /proc/sysrq-trigger
  • 导出线程状态信息

1
echo "t" > /proc/sysrq-trigger
  • 故意让系统溃

1
echo "c" > /proc/sysrq-trigger
  • 立即重新挂载所有的文件系统

1
echo "s" > /proc/sysrq-trigger
  • 立即重新挂载所有的文件系统为只读

1
echo "u" > /proc/sysrq-trigger

为了安全起见,在红帽企业版Linux里面,默认SysRq组合键是关闭的。 打开这个功能,运行:

1
echo 1 > /proc/sys/kernel/sysrq

关闭这个功能:

1
echo 0 > /proc/sys/kernel/sysrq

如果想让此功能一直生效,在/etc/sysctl.conf里面设置kernel.sysrq的值为1. 重新启动以后,此功能将会自动打开。