首页/系统/Linux 内核与性能调优速查/kernel.sysrq 系统请求键掩码
sysctl 内核参数72 条

kernel.sysrq 系统请求键掩码

SysRq 功能位掩码(0 全关、1 全开、438 为常见组合);卡死救援时可通过 /proc/sysrq-trigger 触发保存、导出栈等操作。

SysRq 掩码是什么

kernel.sysrq 是一个位掩码,用来按功能开启或关闭 SysRq 系统请求。这类请求可以通过键盘组合触发,也可以直接写入 /proc/sysrq-trigger,在系统几乎失去响应时同步磁盘、导出任务栈、把文件系统只读重挂载,甚至立即重启。它既是故障救援的最后手段,也是一种暴露面:开启重启位之后,任何具备权限的人都能让机器立刻重启。

基本信息

参数kernel.sysrq(位掩码)
常见取值0 关闭 / 1 全开 / 438 为常用的救援组合
触发方式向 /proc/sysrq-trigger 写入功能字母,需要 root
常用功能同步磁盘、导出任务栈、只读重挂载、立即重启
适用平台Linux;容器与受限环境通常不允许使用该接口
安全考量允许重启的组合会扩大风险面,需按环境权衡

典型使用场景

  • 系统卡死时救援:先同步磁盘再安全重启,降低文件系统损坏风险
  • 排查卡顿:导出全部任务的调用栈,分析不可中断等待的成因
  • 远程运维:无法物理接触时通过系统请求完成紧急重启
  • 安全加固:按最小必要原则限制可用的功能位
  • 流程演练:确认救援手段在目标环境里确实可用

查看与救援

查看与救援
sysctl kernel.sysrq                    # 读当前掩码
echo s > /proc/sysrq-trigger           # 同步所有已挂载的文件系统
echo t > /proc/sysrq-trigger           # 导出全部任务栈,排障最常用
dmesg -T | tail -50                    # 查看导出的栈信息
echo b > /proc/sysrq-trigger           # 立即重启,属危险操作

常用功能位

功能说明使用建议
同步磁盘把脏数据写入磁盘救援流程的第一步,应当优先执行
导出任务栈把各任务调用栈写入内核日志分析系统卡死时最有用的一步
只读重挂载把文件系统切换为只读避免继续写入造成更大损坏
立即重启跳过正常关机流程重启最后手段,可能丢失未落盘的数据
掩码不要凭记忆设置:不同位的含义不同,组合值需要按内核文档逐位核对。开启重启相关位意味着具备权限者可以立即重启系统,救援能力与暴露面必须按环境权衡。
写入触发文件需要 root 权限,容器与受限环境通常禁用该接口或不允许写入。远程救援流程应当提前演练,确认目标环境允许使用,避免真到现场才发现手段不可用。

易错点

  • 凭记忆设置位掩码:记错含义会把不该开放的功能打开,必须按文档核对每位
  • 在生产环境全开:暴露面扩大,任何具备权限者都能触发重启
  • 救援时不先同步磁盘:直接重启会明显提高文件系统损坏的概率
  • 未演练就依赖该流程:受限环境可能禁用接口,关键时刻无法使用
  • 把系统请求当常规运维手段:它面向极端场景,日常运维应使用标准工具

数据来源与参考

  • Linux 内核 Documentation/admin-guide/sysrq.rst
  • man 5 proc(sysrq-trigger)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌