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 权限,容器与受限环境通常禁用该接口或不允许写入。远程救援流程应当提前演练,确认目标环境允许使用,避免真到现场才发现手段不可用。