文章目录
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. 重新启动以后,此功能将会自动打开。