.. include:: ../disclaimer-zh_CN.rst :Original: Documentation/admin-guide/sysrq.rst :翻译: é»„å†›åŽ Junhua Huang <huang.junhua@zte.com.cn> :æ ¡è¯‘: å¸å»¶è…¾ Yanteng Si <siyanteng@loongson.cn> .. _cn_admin-guide_sysrq: Linux 锿³•系统请求键骇客 ======================== 针对 sysrq.c 的文档说明 ä»€ä¹ˆæ˜¯é”æ³• SysRq 键? ~~~~~~~~~~~~~~~~~~~~~ å®ƒæ˜¯ä¸€ä¸ªä½ å¯ä»¥è¾“å…¥çš„å…·æœ‰é”æ³•般的组åˆé”®ã€‚ æ— è®ºå†…æ ¸åœ¨åšä»€ä¹ˆï¼Œå†…æ ¸éƒ½ä¼šå“应 SysRq 键的输入,除éžå†…æ ¸å®Œå…¨å¡æ»ã€‚ å¦‚ä½•ä½¿èƒ½é”æ³• SysRq 键? ~~~~~~~~~~~~~~~~~~~~~~~ 在é…ç½®å†…æ ¸æ—¶ï¼Œæˆ‘ä»¬éœ€è¦è®¾ç½® 'Magic SysRq key (CONFIG_MAGIC_SYSRQ)' 为 'Y'。 当è¿è¡Œä¸€ä¸ªç¼–译进 sysrq åŠŸèƒ½çš„å†…æ ¸æ—¶ï¼Œ/proc/sys/kernel/sysrq 控制ç€è¢« SysRq 键调用的功能许å¯ã€‚这个文件的默认值由 CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE é…置符å·è®¾å®šï¼Œæ–‡ä»¶æœ¬èº«é»˜è®¤è®¾ç½®ä¸º 1。以下是 /proc/sys/kernel/sysrq ä¸å¯èƒ½çš„ 值列表: - 0 - 完全ä¸ä½¿èƒ½ SysRq é”® - 1 - 使能 SysRq 键的全部功能 - >1 - 对于å…许的 SysRq 键功能的比特掩ç (å‚è§ä¸‹é¢æ›´è¯¦ç»†çš„功能æè¿°ï¼‰:: 2 = 0x2 - ä½¿èƒ½å¯¹æŽ§åˆ¶å°æ—¥å¿—记录级别的控制 4 = 0x4 - 使能对键盘的控制 (SAK, unraw) 8 = 0x8 - ä½¿èƒ½å¯¹è¿›ç¨‹çš„è°ƒè¯•å¯¼å‡ºç‰ 16 = 0x10 - ä½¿èƒ½åŒæ¥å‘½ä»¤ 32 = 0x20 - ä½¿èƒ½é‡æ–°æŒ‚è½½åªè¯» 64 = 0x40 - ä½¿èƒ½å¯¹è¿›ç¨‹çš„ä¿¡å·æ“作 (term, kill, oom-kill) 128 = 0x80 - å…许é‡å¯ã€æ–电 256 = 0x100 - å…è®¸è®©æ‰€æœ‰å®žæ—¶ä»»åŠ¡å˜æ™®é€šä»»åŠ¡ ä½ å¯ä»¥é€šè¿‡å¦‚下命令把值设置到这个文件ä¸:: echo "number" >/proc/sys/kernel/sysrq 这里被写入的 number å¯ä»¥æ˜¯ 10 è¿›åˆ¶æ•°ï¼Œæˆ–è€…æ˜¯å¸¦ç€ 0x å‰ç¼€çš„ 16 进制数。 CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE 必须是以 16 进制数写入。 注æ„,``/proc/sys/kernel/sysrq`` 的值åªå½±å“é€šè¿‡é”®ç›˜è§¦å‘ SySRq 的调用,对于 通过 ``/proc/sysrq-trigger`` 的任何æ“作调用都是å…许的 (通过具有系统æƒé™çš„用户)。 å¦‚ä½•ä½¿ç”¨é”æ³• SysRq 键? ~~~~~~~~~~~~~~~~~~~~~~~ 在 x86 架构上 ä½ å¯ä»¥æŒ‰ä¸‹é”®ç›˜ç»„åˆé”® `ALT-SysRq-<command key>`。 .. note:: 一些键盘å¯èƒ½æ²¡æœ‰æ ‡è¯† 'SySRq' 键。'SySRq' é”®ä¹Ÿè¢«å½“åš 'Print Screen'键。 åŒæ—¶æœ‰äº›é”®ç›˜æ— 法处ç†åŒæ—¶æŒ‰ä¸‹è¿™ä¹ˆå¤šé”®ï¼Œå› æ¤ä½ å¯ä»¥å…ˆæŒ‰ä¸‹é”®ç›˜ `Alt` 键, ç„¶åŽæŒ‰ä¸‹é”®ç›˜ `SysRq` 键,å†é‡Šæ”¾é”®ç›˜ `SysRq` é”®ï¼Œä¹‹åŽæŒ‰ä¸‹é”®ç›˜ä¸Šå‘½ä»¤é”® `<command key>`,最åŽé‡Šæ”¾æ‰€æœ‰é”®ã€‚ 在 SPARC 架构上 ä½ å¯ä»¥æŒ‰ä¸‹é”®ç›˜ç»„åˆé”® `ALT-STOP-<command key>` 。 在串行控制å°ï¼ˆåªé’ˆå¯¹ PC ç±»åž‹çš„æ ‡å‡†ä¸²å£ï¼‰ ä½ å¯ä»¥å‘一个 ``BREAK`` ,然åŽåœ¨ 5 秒内å‘é€ä¸€ä¸ªå‘½ä»¤é”®ï¼Œ å‘é€ ``BREAK`` 两次将被翻译为一个æ£å¸¸çš„ BREAK æ“作。 在 PowerPC 架构上 按下键盘组åˆé”® `ALT - Print Screen` (或者 `F13`) - `<命令键>` 。 `Print Screen` (或者 `F13`) - `<命令键>` 或许也能实现。 在其他架构上 å¦‚æžœä½ çŸ¥é“其他架构的组åˆé”®ï¼Œè¯·å‘Šè¯‰æˆ‘,我å¯ä»¥æŠŠå®ƒä»¬æ·»åŠ åˆ°è¿™éƒ¨åˆ†ã€‚ 在所有架构上 写一个å—符到 /proc/sysrq-trigger 文件,例如:: echo t > /proc/sysrq-trigger 这个命令键 `<command key>` 是区分大å°å†™çš„。 什么是命令键? ~~~~~~~~~~~~~~ =========== ================================================================ 命令键 功能 =========== ================================================================ ``b`` 将立å³é‡å¯ç³»ç»Ÿï¼Œä¸ä¼šåŒæ¥æˆ–者å¸è½½ç£ç›˜ã€‚ ``c`` 将执行系统 crash,如果é…置了系统 crashdump,将执行 crashdump。 ``d`` æ˜¾ç¤ºæ‰€æœ‰æŒæœ‰çš„é”。 ``e`` å‘é€ SIGTERM ä¿¡å·ç»™æ‰€æœ‰è¿›ç¨‹ï¼Œé™¤äº† init 进程。 ``f`` 将调用 oom killer æ€æŽ‰ä¸€ä¸ªè¿‡åº¦å 用内å˜çš„进程,如果什么任务都没æ€ï¼Œ 也ä¸ä¼š panic。 ``g`` kgdb ä½¿ç”¨ï¼ˆå†…æ ¸è°ƒè¯•å™¨ï¼‰ã€‚ ``h`` 将会显示帮助。(实际上除了这里列举的键,其他的都将显示帮助, 但是 ``h`` 容易记ä½ï¼‰:-) ``i`` å‘é€ SIGKILL 给所有进程,除了 init 进程。 ``j`` 强制性的 “解冻它†- 用于被 FIFREEZE ioctl æ“作冻ä½çš„æ–‡ä»¶ç³»ç»Ÿã€‚ ``k`` 安全访问秘钥(SAK)æ€æŽ‰åœ¨å½“å‰è™šæ‹ŸæŽ§åˆ¶å°çš„æ‰€æœ‰ç¨‹åºï¼Œæ³¨æ„:å‚考 ä¸‹é¢ SAK 节é‡è¦è®ºè¿°ã€‚ ``l`` 显示所有活动 cpu çš„æ ˆå›žæº¯ã€‚ ``m`` 将导出当å‰å†…å˜ä¿¡æ¯åˆ°ä½ 的控制å°ã€‚ ``n`` ç”¨äºŽä½¿æ‰€æœ‰å®žæ—¶ä»»åŠ¡å˜æˆæ™®é€šä»»åŠ¡ã€‚ ``o`` 将关é—系统(如果é…置和支æŒçš„è¯ï¼‰ã€‚ ``p`` 将导出当å‰å¯„å˜å™¨å’Œæ ‡å¿—ä½åˆ°æŽ§åˆ¶å°ã€‚ ``q`` 将导出æ¯ä¸ª cpu ä¸Šæ‰€æœ‰å·²è£…å¤‡çš„é«˜ç²¾åº¦å®šæ—¶å™¨ï¼ˆä¸æ˜¯å®Œæ•´çš„ time_list 文件显示的 timers)和所有时钟事件设备的详细信æ¯ã€‚ ``r`` å…³é—键盘的原始模å¼ï¼Œè®¾ç½®ä¸ºè½¬æ¢æ¨¡å¼ã€‚ ``s`` å°†å°è¯•åŒæ¥æ‰€æœ‰çš„已挂载文件系统。 ``t`` å°†å¯¼å‡ºå½“å‰æ‰€æœ‰ä»»åŠ¡åˆ—è¡¨å’Œå®ƒä»¬çš„ä¿¡æ¯åˆ°æŽ§åˆ¶å°ã€‚ ``u`` å°†å°è¯•釿–°æŒ‚载已挂载文件系统为åªè¯»ã€‚ ``v`` 强制æ¢å¤å¸§ç¼“å˜æŽ§åˆ¶å°ã€‚ ``v`` è§¦å‘ ETM 缓å˜å¯¼å‡º [ARM 架构特有] ``w`` 导出处于ä¸å¯ä¸æ–状æ€ï¼ˆé˜»å¡žï¼‰çš„任务。 ``x`` 在 ppc/powerpc 架构上用于 xmon 接å£ã€‚ 在 sparc64 架构上用于显示全局的 PMU(性能监控å•元)寄å˜å™¨ã€‚ 在 MIPS 架构上导出所有的 tlb æ¡ç›®ã€‚ ``y`` 显示全局 cpu 寄å˜å™¨ [SPARC-64 架构特有] ``z`` 导出 ftrace 缓å˜ä¿¡æ¯ ``0``-``9`` è®¾ç½®æŽ§åˆ¶å°æ—¥å¿—çº§åˆ«ï¼Œè¯¥çº§åˆ«æŽ§åˆ¶ä»€ä¹ˆæ ·çš„å†…æ ¸ä¿¡æ¯å°†è¢«æ‰“å°åˆ°ä½ çš„ 控制å°ã€‚(比如 ``0`` ï¼Œå°†ä½¿å¾—åªæœ‰ç´§æ€¥ä¿¡æ¯ï¼Œåƒ PANICs or OOPSes æ‰èƒ½åˆ°ä½ 的控制å°ã€‚) =========== ================================================================ 好了,我能用他们åšä»€ä¹ˆå‘¢ï¼Ÿ ~~~~~~~~~~~~~~~~~~~~~~~~~~ å—¯ï¼Œå½“ä½ çš„ X æœåŠ¡ç«¯æˆ–è€… svgalib 程åºå´©æºƒï¼Œunraw(r) éžåŽŸå§‹æ¨¡å¼å‘½ä»¤é”®æ˜¯éžå¸¸ 方便的。 sak(k)ï¼ˆå®‰å…¨è®¿é—®ç§˜é’¥ï¼‰åœ¨ä½ å°è¯•ç™»é™†çš„åŒæ—¶ï¼Œåˆæƒ³ç¡®ä¿å½“å‰æŽ§åˆ¶å°æ²¡æœ‰å¯ä»¥èŽ·å–ä½ çš„ 密ç 的特洛伊木马程åºè¿è¡Œæ—¶æ˜¯æœ‰ç”¨çš„ã€‚å®ƒä¼šæ€æŽ‰ç»™å®šæŽ§åˆ¶å°çš„æ‰€æœ‰ç¨‹åºï¼Œè¿™æ ·ä½ å°±å¯ä»¥ç¡®è®¤å½“å‰çš„登陆æç¤ºç¨‹åºæ˜¯å®žé™…æ¥è‡ª init 进程的程åºï¼Œè€Œä¸æ˜¯æŸäº›ç‰¹æ´›ä¼Š 木马程åºã€‚ .. important:: 在其实际的形å¼ä¸ï¼Œåœ¨å…¼å®¹ C2 å®‰å…¨æ ‡å‡†çš„ç³»ç»Ÿä¸Šï¼Œå®ƒä¸æ˜¯ä¸€ä¸ªçœŸæ£çš„ SAK, 它也ä¸åº”该误认为æ¤ã€‚ 似乎其他人å‘现其å¯ä»¥ä½œä¸ºï¼ˆç³»ç»Ÿç»ˆç«¯è”æœºé”®ï¼‰å½“ä½ æƒ³é€€å‡ºä¸€ä¸ªç¨‹åºï¼Œ åŒæ—¶ä¸ä¼šè®©ä½ åˆ‡æ¢æŽ§åˆ¶å°çš„æ–¹æ³•。(比如,X æœåŠ¡ç«¯æˆ–è€… svgalib 程åºï¼‰ ``reboot(b)`` æ˜¯ä¸ªå¥½æ–¹æ³•ï¼Œå½“ä½ ä¸èƒ½å…³é—机器时,它ç‰åŒäºŽæŒ‰ä¸‹"å¤ä½"按钮。 ``crash(c)`` å¯ä»¥ç”¨äºŽæ‰‹åŠ¨è§¦å‘一个 crashdump,当系统å¡ä½æ—¶ã€‚ 注æ„当 crashdump 机制ä¸å¯ç”¨æ—¶ï¼Œè¿™ä¸ªåªæ˜¯è§¦å‘ä¸€ä¸ªå†…æ ¸ crash。 ``sync(s)`` 在拔掉å¯ç§»åŠ¨ä»‹è´¨ä¹‹å‰ï¼Œæˆ–è€…åœ¨ä½¿ç”¨ä¸æä¾›ä¼˜é›…å…³æœºçš„ æ•‘æ´ shell 之åŽå¾ˆæ–¹ä¾¿ -- 它将确ä¿ä½ 的数æ®è¢«å®‰å…¨åœ°å†™å…¥ç£ç›˜ã€‚注æ„ï¼Œåœ¨ä½ çœ‹åˆ° å±å¹•上出现 "OK" å’Œ "Done" 之å‰ï¼ŒåŒæ¥è¿˜æ²¡æœ‰å‘生。 ``umount(u)`` å¯ä»¥ç”¨æ¥æ ‡è®°æ–‡ä»¶ç³»ç»Ÿæ£å¸¸å¸è½½ï¼Œä»Žæ£åœ¨è¿è¡Œçš„系统角度æ¥çœ‹ï¼Œå®ƒä»¬å°† è¢«é‡æ–°æŒ‚载为åªè¯»ã€‚è¿™ä¸ªé‡æ–°æŒ‚è½½åŠ¨ä½œç›´åˆ°ä½ çœ‹åˆ° "OK" å’Œ "Done" ä¿¡æ¯å‡ºçŽ°åœ¨å±å¹•上 æ‰ç®—完æˆã€‚ 日志级别 ``0`` - ``9`` ç”¨äºŽå½“ä½ çš„æŽ§åˆ¶å°è¢«å¤§é‡çš„å†…æ ¸ä¿¡æ¯å†²å‡»ï¼Œä½ 䏿ƒ³çœ‹è§çš„æ—¶å€™ã€‚ 选择 ``0`` å°†ç¦æ¢é™¤äº†æœ€ç´§æ€¥çš„å†…æ ¸ä¿¡æ¯å¤–çš„æ‰€æœ‰çš„å†…æ ¸ä¿¡æ¯è¾“出到控制å°ã€‚(但是如果 syslogd/klogd 进程是è¿è¡Œçš„,它们ä»å°†è¢«è®°å½•。) ``term(e)`` å’Œ ``kill(i)`` ç”¨äºŽå½“ä½ æœ‰äº›æœ‰ç‚¹å¤±æŽ§çš„è¿›ç¨‹ï¼Œä½ æ— æ³•é€šè¿‡å…¶ä»–æ–¹å¼æ€æŽ‰ 它们的时候,特别是它æ£åœ¨åˆ›å»ºå…¶ä»–进程。 "just thaw ``it(j)`` " ç”¨äºŽå½“ä½ çš„ç³»ç»Ÿç”±äºŽä¸€ä¸ª FIFREEZE ioctl 调用而产生的文件 系统冻结,而导致的ä¸å“应时。 有的时候 SysRq 键在使用它之åŽï¼Œçœ‹èµ·æ¥åƒæ˜¯â€œå¡ä½â€äº†ï¼Œæˆ‘能åšäº›ä»€ä¹ˆï¼Ÿ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 这也会å‘生在我这,我å‘现轻敲键盘两侧的 shiftã€alt å’Œ control 键,然åŽå†æ¬¡æ•²å‡» ä¸€ä¸ªæ— æ•ˆçš„ SysRq é”®åºåˆ—å¯ä»¥è§£å†³é—®é¢˜ã€‚(比如,åƒé”®ç›˜ç»„åˆé”® `alt-sysrq-z` ) 切æ¢åˆ°å¦ä¸€ä¸ªè™šæ‹ŸæŽ§åˆ¶å°ï¼ˆé”®ç›˜æ“作 `ALT+Fn` ),然åŽå†åˆ‡å›žæ¥åº”该也有帮助。 我敲击了 SysRq é”®ï¼Œä½†åƒæ˜¯ä»€ä¹ˆéƒ½æ²¡å‘生,å‘生了什么错误? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 有一些键盘对于 SysRq 键设置了ä¸åŒçš„é”®å€¼ï¼Œè€Œä¸æ˜¯æå‰å®šä¹‰çš„ 99 (查看在 ``include/uapi/linux/input-event-codes.h`` æ–‡ä»¶ä¸ ``KEY_SYSRQ`` 的定义) æˆ–è€…å°±æ ¹æœ¬æ²¡æœ‰ SysRq 键。在这些场景下,执行 ``showkey -s`` å‘½ä»¤æ¥æ‰¾åˆ°ä¸€ä¸ªåˆé€‚ 的扫æç åºåˆ—,然åŽä½¿ç”¨ ``setkeycodes <sequence> 99`` å‘½ä»¤æ˜ å°„è¿™ä¸ªåºåˆ—值到通用 çš„ SysRq 键编ç 上(比如 ``setkeycodes e05b 99`` )。最好将这个命令放在å¯åŠ¨è„šæœ¬ ä¸ã€‚ 哦,顺便说一å¥ï¼Œä½ åç§’é’Ÿä¸è¾“入任何东西就将退出 “showkeyâ€ã€‚ æˆ‘æƒ³æ·»åŠ ä¸€ä¸ª SysRq 键事件到一个模å—ä¸ï¼Œå¦‚何去åšå‘¢ï¼Ÿ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 为了注册一个基础函数到这个表ä¸ï¼Œé¦–å…ˆä½ å¿…é¡»åŒ…å« ``include/linux/sysrq.h`` 头 æ–‡ä»¶ï¼Œè¿™ä¸ªå¤´æ–‡ä»¶å®šä¹‰äº†ä½ æ‰€éœ€è¦çš„æ‰€æœ‰ä¸œè¥¿ã€‚ç„¶åŽä½ 必须创建一个 ``sysrq_key_op`` 结构体,然åŽåˆå§‹åŒ–它,使用如下内容,A) ä½ å°†ä½¿ç”¨çš„è¿™ä¸ªé”®çš„å¤„ç†å‡½æ•°ï¼Œ B) 一个 help_msg å—符串,在 SysRq 键打å°å¸®åŠ©ä¿¡æ¯æ—¶å°†æ‰“å°å‡ºæ¥ï¼ŒC) 一个 action_msg å— ç¬¦ä¸²ï¼Œå°±åœ¨ä½ çš„å¤„ç†å‡½æ•°è°ƒç”¨å‰æ‰“å°å‡ºæ¥ã€‚ä½ çš„å¤„ç†å‡½æ•°å¿…须符åˆåœ¨ 'sysrq.h' æ–‡ä»¶ä¸ çš„å‡½æ•°åŽŸåž‹ã€‚ 在 ``sysrq_key_op`` 结构体被创建åŽï¼Œä½ å¯ä»¥è°ƒç”¨å†…æ ¸å‡½æ•° ``register_sysrq_key(int key, const struct sysrq_key_op *op_p);``, 该函数在表ä¸çš„ 'key' 对应ä½ç½®å†…容是空的情况下,将通过 ``op_p`` 指针注册这个æ“作 å‡½æ•°åˆ°è¡¨ä¸ 'key' 对应ä½ç½®ä¸Šã€‚在模å—å¸è½½çš„æ—¶å€™ï¼Œä½ 必须调用 ``unregister_sysrq_key(int key, const struct sysrq_key_op *op_p)`` 函数,该函数 åªæœ‰åœ¨å½“å‰è¯¥é”®å¯¹åº”的处ç†å‡½æ•°è¢«æ³¨å†Œåˆ°äº† 'key' 对应ä½ç½®æ—¶ï¼Œæ‰ä¼šç§»é™¤ 'op_p' 指针 对应的键值æ“作函数。这是为了防æ¢åœ¨ä½ 注册之åŽï¼Œè¯¥ä½ç½®è¢«æ”¹å†™çš„æƒ…况。 锿³• SysRq é”®ç³»ç»Ÿçš„å·¥ä½œåŽŸç†æ˜¯å°†é”®å¯¹åº”æ“作函数注册到键的æ“作查找表, 该表定义在 'drivers/tty/sysrq.c' 文件ä¸ã€‚ 该键表有许多在编译时候就注册进去的æ“作函数,但是是å¯å˜çš„。 并且有两个函数作为æ“作该表的接å£è¢«å¯¼å‡º:: register_sysrq_key å’Œ unregister_sysrq_key. 当然,永远ä¸è¦åœ¨è¡¨ä¸ç•™ä¸‹æ— 效指针,å³ï¼Œå½“ä½ çš„æ¨¡å—å˜åœ¨è°ƒç”¨ register_sysrq_key() 函数,它一定è¦è°ƒç”¨ unregister_sysrq_key() æ¥æ¸…除它使用过的 SysRq 键表æ¡ç›®ã€‚ 表ä¸çš„空指针是安全的。:) 如果对于æŸç§åŽŸå› ï¼Œåœ¨ handle_sysrq 调用的处ç†å‡½æ•°ä¸ï¼Œä½ 认为有必è¦è°ƒç”¨ handle_sysrq å‡½æ•°æ—¶ï¼Œä½ å¿…é¡»æ„识到当å‰ä½ 处于一个é”ä¸ï¼ˆä½ åŒæ—¶ä¹Ÿå¤„äºŽä¸€ä¸ªä¸æ–å¤„ç† å‡½æ•°ä¸ï¼Œè¿™æ„味ç€ä¸èƒ½ç¡çœ ï¼‰ã€‚æ‰€ä»¥è¿™æ—¶ä½ å¿…é¡»ä½¿ç”¨ ``__handle_sysrq_nolock`` 替代。 当我敲击一个 SysRq 组åˆé”®æ—¶ï¼Œåªæœ‰æ ‡é¢˜æ‰“å°å‡ºçŽ°åœ¨æŽ§åˆ¶å°ï¼Ÿ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SysRq 键的输出和所有其他控制å°è¾“å‡ºä¸€æ ·ï¼Œå—åˆ¶äºŽæŽ§åˆ¶å°æ—¥å¿—级别控制。 è¿™æ„味ç€ï¼Œå¦‚æžœå†…æ ¸ä»¥å‘è¡Œç‰ˆå†…æ ¸ä¸å¸¸è§çš„ "quiet" æ–¹å¼å¯åŠ¨ï¼Œåˆ™è¾“å‡ºå¯èƒ½ä¸ä¼šå‡ºçŽ°åœ¨å®žé™… 的控制å°ä¸Šï¼Œå³ä½¿å®ƒä¼šå‡ºçŽ°åœ¨ dmesg 缓å˜ä¸ï¼Œä¹Ÿå¯ä»¥é€šè¿‡ dmesg 命令和 ``/proc/kmsg`` 文件的消费访问到。作为一个特例,æ¥è‡ª sysrq å‘½ä»¤çš„æ ‡é¢˜è¡Œå°†è¢«ä¼ é€’ç»™æ‰€æœ‰æŽ§åˆ¶å° ä½¿ç”¨è€…ï¼Œå°±å¥½åƒå½“剿—¥å¿—çº§åˆ«æ˜¯æœ€å¤§çš„ä¸€æ ·ã€‚å¦‚æžœåªå‘å‡ºæ ‡é¢˜å¤´ï¼Œåˆ™å‡ ä¹Žå¯ä»¥è‚¯å®šå†…æ ¸æ—¥å¿— çº§åˆ«å¤ªä½Žã€‚å¦‚æžœä½ éœ€è¦æŽ§åˆ¶å°ä¸Šçš„è¾“å‡ºï¼Œé‚£ä¹ˆä½ å°†éœ€è¦ä¸´æ—¶æé«˜æŽ§åˆ¶å°æ—¥å¿—级别,通过使用 键盘组åˆé”® `alt-sysrq-8` 或者:: echo 8 > /proc/sysrq-trigger 在触å‘äº†ä½ æ„Ÿå…´è¶£çš„ SysRq 键命令åŽï¼Œè®°å¾—æ¢å¤æ—¥å¿—级别到æ£å¸¸æƒ…况。 我有很多问题时,å¯ä»¥è¯·æ•™è°ï¼Ÿ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ è¯·æ•™åœ¨å†…æ ¸é‚®ä»¶åˆ—è¡¨ä¸Šçš„äººï¼Œé‚®ç®±ï¼š linux-kernel@vger.kernel.org 致谢 ~~~~ - Mydraal <vulpyne@vulpyne.net> 撰写了该文件 - Adam Sulmicki <adam@cfar.umd.edu> 进行了更新 - Jeremy M. Dolan <jmd@turbogeek.org> 在 2001/01/28 10:15:59 进行了更新 - Crutcher Dunnavant <crutcher+kernel@datastacks.com> æ·»åŠ é”®æ³¨å†Œéƒ¨åˆ†