Linux内核基础篇——神奇的系统请求键SysRq

简介: Linux内核基础篇——神奇的系统请求键SysRq

什么是SysRq

Linux内核提供了一些与用户空间的通信机制,例如procfs接口和sysfs接口,大部分的这些接口都可以作为获取内核信息的手段。

但除了这些接口,内核也提供了专门的调试机制——系统请求键SysRq

SysRq被内核称为“Magic SysRq key”,即“神奇的系统请求键”。

简单来说,就是可以通过键盘的按键获取内核的信息,用于调试。相当于是一个快捷键。

SysRq内核配置选项

要使用系统请求键SysRq,内核配置选项中必须打开CONFIG_MAGIC_SYSRQ

CONFIG_MAGIC_SYSRQ=y

SysRq键是复合键【Alt+ SysRq】,大多数键盘的SysRqPrtSc键是复用的。

按住SysRq复合键, 再输入第三个命令键, 可以执行相应的系统调试命令。例如,输入t键, 可以得到当前运行的进程和所有进程的堆栈跟踪。回溯跟踪将被写到/var/log/messages 文件中。如果内核都配置好了, 系统应该己经转换了内核的符号地址。

系统请求键命令说明

键命令 说明
SysRq-b 重启机器
SysRq-e init之外的所有进程发送SIGTERM信号
SysRq-i init之外的所有进程发送SIGKILL信号
SysRq-k 安全访问键:杀掉这个控制台上的所有进程
SysRq-l 给包括init在内的所有进程发送SIGKILL信号
SysRq-m 在控制台上显示内存信息
SysRq-o 关闭机器
SysRq-p 在控制台上显示寄存器
SysRq-r 关闭键盘的原始模式
SysRq-s 同步所有挂接的磁盘
SysRq-t 在控制台上显示所有的任务信息
SysRq-u 卸载所有已经挂载的磁盘

以上是系统请求键SysRq命令的主要说明,更多的内容可以参考内核说明文档:Documentation/sysrq.txt

通过/proc接口发起系统请求

有些硬件平台可能不能使用SysRq复合键,这种情况下,也可以通过/proc接口进入系统请求状态。

因为在内核配置选项中,使能了CONFIG_MAGIC_SYSRQ选项后,系统启动之后,就会生成/proc/sysrq-trigger节点用于调试。

例如:

产生空指针panic事件,认为导致系统崩溃

echo c > /proc/sysrq-trigger

导出当前CPU寄存器和标志位信息

echo p > /proc/sysrq-trigger

在控制台上显示内存信息

echo m > /proc/sysrq-trigger

echo输出的字符,其实就是第三个键的命令

系统请求键SysRq主要用来辅助调试和拯救系统,在系统宕机或者运行不正常的时候,通过系统请求键SysRq可以查询当前进程执行的状态,从而判断出错的进程和函数。

end

猜你喜欢

Linux驱动IO篇——异步IO

Linux驱动IO篇——IO多路复用

Linux驱动IO篇——阻塞/非阻塞IO

Linux驱动IO篇——ioctl设备操作

一个Linux驱动工程师必知的内核模块知识

Linux内核中常用的数据结构和算法

Linux内核中常用的C语言技巧

Linux内核基础篇——常用调试技巧汇总

Linux内核基础篇——动态输出调试

Linux内核基础篇——printk调试

Linux内核基础篇——initcall

相关文章
|
23天前
|
算法 Linux 调度
深入理解Linux内核调度器:从基础到优化####
本文旨在通过剖析Linux操作系统的心脏——内核调度器,为读者揭开其高效管理CPU资源的神秘面纱。不同于传统的摘要概述,本文将直接以一段精简代码片段作为引子,展示一个简化版的任务调度逻辑,随后逐步深入,详细探讨Linux内核调度器的工作原理、关键数据结构、调度算法演变以及性能调优策略,旨在为开发者与系统管理员提供一份实用的技术指南。 ####
61 4
|
23天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
64 3
|
23天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
59 2
|
12天前
|
缓存 网络协议 Linux
深入探索Linux操作系统的内核优化策略####
本文旨在探讨Linux操作系统内核的优化方法,通过分析当前主流的几种内核优化技术,结合具体案例,阐述如何有效提升系统性能与稳定性。文章首先概述了Linux内核的基本结构,随后详细解析了内核优化的必要性及常用手段,包括编译优化、内核参数调整、内存管理优化等,最后通过实例展示了这些优化技巧在实际场景中的应用效果,为读者提供了一套实用的Linux内核优化指南。 ####
38 1
|
17天前
|
算法 Linux 开发者
Linux内核中的锁机制:保障并发控制的艺术####
本文深入探讨了Linux操作系统内核中实现的多种锁机制,包括自旋锁、互斥锁、读写锁等,旨在揭示这些同步原语如何高效地解决资源竞争问题,保证系统的稳定性和性能。通过分析不同锁机制的工作原理及应用场景,本文为开发者提供了在高并发环境下进行有效并发控制的实用指南。 ####
|
17天前
|
Ubuntu Linux 网络安全
linux系统ubuntu中在命令行中打开图形界面的文件夹
在Ubuntu系统中,通过命令行打开图形界面的文件夹是一个高效且实用的操作。无论是使用Nautilus、Dolphin还是Thunar,都可以根据具体桌面环境选择合适的文件管理器。通过上述命令和方法,可以简化日常工作,提高效率。同时,解决权限问题和图形界面问题也能确保操作的顺利进行。掌握这些技巧,可以使Linux操作更加便捷和灵活。
15 3
|
25天前
|
缓存 资源调度 安全
深入探索Linux操作系统的心脏——内核配置与优化####
本文作为一篇技术性深度解析文章,旨在引领读者踏上一场揭秘Linux内核配置与优化的奇妙之旅。不同于传统的摘要概述,本文将以实战为导向,直接跳入核心内容,探讨如何通过精细调整内核参数来提升系统性能、增强安全性及实现资源高效利用。从基础概念到高级技巧,逐步揭示那些隐藏在命令行背后的强大功能,为系统管理员和高级用户打开一扇通往极致性能与定制化体验的大门。 --- ###
58 9
|
24天前
|
缓存 负载均衡 Linux
深入理解Linux内核调度器
本文探讨了Linux操作系统核心组件之一——内核调度器的工作原理和设计哲学。不同于常规的技术文章,本摘要旨在提供一种全新的视角来审视Linux内核的调度机制,通过分析其对系统性能的影响以及在多核处理器环境下的表现,揭示调度器如何平衡公平性和效率。文章进一步讨论了完全公平调度器(CFS)的设计细节,包括它如何处理不同优先级的任务、如何进行负载均衡以及它是如何适应现代多核架构的挑战。此外,本文还简要概述了Linux调度器的未来发展方向,包括对实时任务支持的改进和对异构计算环境的适应性。
39 6
|
25天前
|
缓存 Linux 开发者
Linux内核中的并发控制机制:深入理解与应用####
【10月更文挑战第21天】 本文旨在为读者提供一个全面的指南,探讨Linux操作系统中用于实现多线程和进程间同步的关键技术——并发控制机制。通过剖析互斥锁、自旋锁、读写锁等核心概念及其在实际场景中的应用,本文将帮助开发者更好地理解和运用这些工具来构建高效且稳定的应用程序。 ####
39 5
|
23天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
64 3

热门文章

最新文章