SysRq 键有什么作用?

RCI*_*CIX 29 keyboard function-keys

在我的键盘上,当 F-lock 打开时,用作 Print Screen 键的键下面有“SysRq”(大概在 F-lock 关闭时使用)。它是什么,它有什么作用?

小智 18

SysRqIBM PC 键盘上引入了一种跨平台方式来启动低级别事件的方法。键入密钥时,它们会被放入缓冲区并定期刷新。如果您的机器锁定,则键盘不起作用。

SysRq键基本上以强制命令被发送到计算机,绕过缓冲,以触发低电平呼叫; 通常是 RESET 事件。

然而,每个操作系统现在都忽略这个键,并使用首选组合键来启动某种类似“任务管理器”的界面,使操作系统能够保持运行,而不是重置计算机。

从主机操作系统运行应用程序比从 BIOS 运行应用程序更为常见。1980 年代不是那样的 :-)


har*_*ymc 7

SysRq键是在个人计算机的早期发明的,当时低级终止和驻留 (TSR) 程序可以直接访问和修改键盘缓冲区。此密钥绕过缓冲区并直接访问 MSDOS 操作系统。

今天这个键被 BIOS 和 Windows 忽略了。它已降级为Prt Scn键并由Alt+激活 Prt Scn。一些制造商,例如联想,不再在键盘上标记它,尽管它仍然可以按上述方式访问。

一些较旧的调试器使用此键作为中断执行键,但这不再存在。

在 Linux 下,密钥仍然存在,要求在构建内核时指定 CONFIG_MAGIC_SYSRQ 内核选项。这可以通过输入命令来检查:

$ cat /proc/sys/kernel/sysrq
176
Run Code Online (Sandbox Code Playgroud)

该命令通常会返回 的值176,其中每一位代表一个函数:

0 - disable sysrq completely
1 - enable all functions of sysrq
2 - enable control of console logging level
4 - enable control of keyboard (SAK, unraw)
8 - enable debugging dumps of processes etc.
16 - enable sync command
32 - enable remount read-only
64 - enable signaling of processes (term, kill, oom-kill)
128 - allow reboot/poweroff
256 - allow nicing of all RT tasks
Run Code Online (Sandbox Code Playgroud)

0禁用所有 SysRq 功能,值1启用所有功能。例如,可以通过以下命令更改运行值:

echo "1" > /proc/sys/kernel/sysrq
Run Code Online (Sandbox Code Playgroud)

在所有命令键序列中,REISUB 是最著名的,当按住 Alt+Prt Scn键并按顺序按下以下键时:

  • r : 将键盘从原始模式切换到 XLATE 模式
  • e : 向所有进程发送 SIGTERM 信号,尽可能优雅地关闭
  • i : 发送一个 SIGKILL 信号来终止没有响应的进程
  • s : 同步所有挂载的文件系统并刷新所有缓存的磁盘更改
  • u : 以只读方式重新挂载所有文件系统
  • b : 系统重启。

参考:


Roo*_*ook 3

它是一个可编程键,可以根据情况执行多种操作。

我记得它在旧的 ibm 终端上有一些用途,一些 DOS 程序将它用于某种形式的软重置。