sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextEnglish}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget/admin-guide/sysrqmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Simplified)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/zh_CN/admin-guide/sysrqmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/it_IT/admin-guide/sysrqmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/ja_JP/admin-guide/sysrqmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/ko_KR/admin-guide/sysrqmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/sp_SP/admin-guide/sysrqmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageChinese (Traditional)uh1h hh _documenthsourceNlineNubhwarning)}(hX1此文件的目的是爲讓中文讀者更容易閱讀和理解,而不是作爲一個分支。因此, 如果您對此文件有任何意見或改動,請先嘗試更新原始英文文件。如果要更改或 修正某處翻譯文件,請將意見或補丁發送給維護者(聯繫方式見下)。h]h paragraph)}(hX1此文件的目的是爲讓中文讀者更容易閱讀和理解,而不是作爲一個分支。因此, 如果您對此文件有任何意見或改動,請先嘗試更新原始英文文件。如果要更改或 修正某處翻譯文件,請將意見或補丁發送給維護者(聯繫方式見下)。h]hX1此文件的目的是爲讓中文讀者更容易閱讀和理解,而不是作爲一個分支。因此, 如果您對此文件有任何意見或改動,請先嘗試更新原始英文文件。如果要更改或 修正某處翻譯文件,請將意見或補丁發送給維護者(聯繫方式見下)。}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hh5Documentation/translations/zh_TW/disclaimer-zh_TW.rsthKhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubhnote)}(h如果您發現本文檔與原始文件有任何不同或者有翻譯問題,請聯繫該文件的譯者, 或者發送電子郵件給胡皓文以獲取幫助:<2023002089@link.tyut.edu.cn>。h]h)}(h如果您發現本文檔與原始文件有任何不同或者有翻譯問題,請聯繫該文件的譯者, 或者發送電子郵件給胡皓文以獲取幫助:<2023002089@link.tyut.edu.cn>。h](h如果您發現本文檔與原始文件有任何不同或者有翻譯問題,請聯繫該文件的譯者, 或者發送電子郵件給胡皓文以獲取幫助:<}(hhhhhNhNubh reference)}(h2023002089@link.tyut.edu.cnh]h2023002089@link.tyut.edu.cn}(hhhhhNhNubah}(h]h ]h"]h$]h&]refuri"mailto:2023002089@link.tyut.edu.cnuh1hhhubh>。}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh field_list)}(hhh](hfield)}(hhh](h field_name)}(hOriginalh]hOriginal}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhR/var/lib/git/docbuild/linux/Documentation/translations/zh_TW/admin-guide/sysrq.rsthKubh field_body)}(h$Documentation/admin-guide/sysrq.rst h]h)}(h#Documentation/admin-guide/sysrq.rsth]h#Documentation/admin-guide/sysrq.rst}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1j hhubeh}(h]h ]h"]h$]h&]uh1hhjhKhhhhubh)}(hhh](h)}(h翻譯h]h翻譯}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)hjhKubj )}(h1黃軍華 Junhua Huang h]h)}(h0黃軍華 Junhua Huang h](h黃軍華 Junhua Huang <}(hj>hhhNhNubh)}(hhuang.junhua@zte.com.cnh]hhuang.junhua@zte.com.cn}(hjFhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:huang.junhua@zte.com.cnuh1hhj>ubh>}(hj>hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhj:ubah}(h]h ]h"]h$]h&]uh1j hj)ubeh}(h]h ]h"]h$]h&]uh1hhjhKhhhhubh)}(hhh](h)}(h校譯h]h校譯}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhjhKubj )}(h-司延騰 Yanteng Si h]h)}(h,司延騰 Yanteng Si h](h司延騰 Yanteng Si <}(hjhhhNhNubh)}(hsiyanteng@loongson.cnh]hsiyanteng@loongson.cn}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:siyanteng@loongson.cnuh1hhjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhK hj}ubah}(h]h ]h"]h$]h&]uh1j hjlubeh}(h]h ]h"]h$]h&]uh1hhjhK hhhhubeh}(h]h ]h"]h$]h&]uh1hhhhhhjhKubhtarget)}(h.. _tw_admin-guide_sysrq:h]h}(h]h ]h"]h$]h&]refidtw-admin-guide-sysrquh1jhKhhhhhjubhsection)}(hhh](htitle)}(h!Linux 魔法系統請求鍵駭客h]h!Linux 魔法系統請求鍵駭客}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubh)}(h針對 sysrq.c 的文檔說明h]h針對 sysrq.c 的文檔說明}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjhhubj)}(hhh](j)}(h什麼是魔法 SysRq 鍵?h]h什麼是魔法 SysRq 鍵?}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubh)}(h它是一個你可以輸入的具有魔法般的組合鍵。 無論內核在做什麼,內核都會響應 SysRq 鍵的輸入,除非內核完全卡死。h]h它是一個你可以輸入的具有魔法般的組合鍵。 無論內核在做什麼,內核都會響應 SysRq 鍵的輸入,除非內核完全卡死。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjhhubeh}(h]sysrqah ]h"]什麼是魔法 sysrq 鍵?ah$]h&]uh1jhjhhhjhKubj)}(hhh](j)}(h如何使能魔法 SysRq 鍵?h]h如何使能魔法 SysRq 鍵?}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hhhjhKubh)}(hX在配置內核時,我們需要設置 'Magic SysRq key (CONFIG_MAGIC_SYSRQ)' 爲 'Y'。 當運行一個編譯進 sysrq 功能的內核時,/proc/sys/kernel/sysrq 控制着被 SysRq 鍵調用的功能許可。這個文件的默認值由 CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE 配置符號設定,文件本身默認設置爲 1。以下是 /proc/sys/kernel/sysrq 中可能的 值列表:h]hX在配置內核時,我們需要設置 ‘Magic SysRq key (CONFIG_MAGIC_SYSRQ)’ 爲 ‘Y’。 當運行一個編譯進 sysrq 功能的內核時,/proc/sys/kernel/sysrq 控制着被 SysRq 鍵調用的功能許可。這個文件的默認值由 CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE 配置符號設定,文件本身默認設置爲 1。以下是 /proc/sys/kernel/sysrq 中可能的 值列表:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj hhubh block_quote)}(hX\- 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 - 允許讓所有實時任務變普通任務 h]h bullet_list)}(hhh](h list_item)}(h0 - 完全不使能 SysRq 鍵h]h)}(hj;h]h0 - 完全不使能 SysRq 鍵}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK#hj9ubah}(h]h ]h"]h$]h&]uh1j7hj4ubj8)}(h#1 - 使能 SysRq 鍵的全部功能h]h)}(hjRh]h#1 - 使能 SysRq 鍵的全部功能}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK$hjPubah}(h]h ]h"]h$]h&]uh1j7hj4ubj8)}(hX>1 - 對於允許的 SysRq 鍵功能的比特掩碼(參見下面更詳細的功能描述):: 2 = 0x2 - 使能對控制檯日誌記錄級別的控制 4 = 0x4 - 使能對鍵盤的控制 (SAK, unraw) 8 = 0x8 - 使能對進程的調試導出等 16 = 0x10 - 使能同步命令 32 = 0x20 - 使能重新掛載只讀 64 = 0x40 - 使能對進程的信號操作 (term, kill, oom-kill) 128 = 0x80 - 允許重啓、斷電 256 = 0x100 - 允許讓所有實時任務變普通任務 h](h)}(h_>1 - 對於允許的 SysRq 鍵功能的比特掩碼(參見下面更詳細的功能描述)::h]h^>1 - 對於允許的 SysRq 鍵功能的比特掩碼(參見下面更詳細的功能描述):}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK%hjgubh literal_block)}(hX 2 = 0x2 - 使能對控制檯日誌記錄級別的控制 4 = 0x4 - 使能對鍵盤的控制 (SAK, unraw) 8 = 0x8 - 使能對進程的調試導出等 16 = 0x10 - 使能同步命令 32 = 0x20 - 使能重新掛載只讀 64 = 0x40 - 使能對進程的信號操作 (term, kill, oom-kill) 128 = 0x80 - 允許重啓、斷電 256 = 0x100 - 允許讓所有實時任務變普通任務h]hX 2 = 0x2 - 使能對控制檯日誌記錄級別的控制 4 = 0x4 - 使能對鍵盤的控制 (SAK, unraw) 8 = 0x8 - 使能對進程的調試導出等 16 = 0x10 - 使能同步命令 32 = 0x20 - 使能重新掛載只讀 64 = 0x40 - 使能對進程的信號操作 (term, kill, oom-kill) 128 = 0x80 - 允許重啓、斷電 256 = 0x100 - 允許讓所有實時任務變普通任務}hj{sbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1jyhjhK'hjgubeh}(h]h ]h"]h$]h&]uh1j7hj4ubeh}(h]h ]h"]h$]h&]bullet-uh1j2hjhK#hj.ubah}(h]h ]h"]h$]h&]uh1j,hjhK#hj hhubh)}(h;你可以通過如下命令把值設置到這個文件中::h]h:你可以通過如下命令把值設置到這個文件中:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK0hj hhubjz)}(h%echo "number" >/proc/sys/kernel/sysrqh]h%echo "number" >/proc/sys/kernel/sysrq}hjsbah}(h]h ]h"]h$]h&]jjuh1jyhjhK2hj hhubh)}(h這裏被寫入的 number 可以是 10 進制數,或者是帶着 0x 前綴的 16 進制數。 CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE 必須是以 16 進制數寫入。h]h這裏被寫入的 number 可以是 10 進制數,或者是帶着 0x 前綴的 16 進制數。 CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE 必須是以 16 進制數寫入。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK4hj hhubh)}(h注意,``/proc/sys/kernel/sysrq`` 的值隻影響通過鍵盤觸發 SySRq 的調用,對於 通過 ``/proc/sysrq-trigger`` 的任何操作調用都是允許的 (通過具有系統權限的用戶)。h](h 注意,}(hjhhhNhNubhliteral)}(h``/proc/sys/kernel/sysrq``h]h/proc/sys/kernel/sysrq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhC 的值隻影響通過鍵盤觸發 SySRq 的調用,對於 通過 }(hjhhhNhNubj)}(h``/proc/sysrq-trigger``h]h/proc/sysrq-trigger}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhP 的任何操作調用都是允許的 (通過具有系統權限的用戶)。}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhK7hj hhubeh}(h]id1ah ]h"]如何使能魔法 sysrq 鍵?ah$]h&]uh1jhjhhhjhKubj)}(hhh](j)}(h如何使用魔法 SysRq 鍵?h]h如何使用魔法 SysRq 鍵?}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhK`。 .. note:: 一些鍵盤可能沒有標識 'SySRq' 鍵。'SySRq' 鍵也被當做 'Print Screen'鍵。 同時有些鍵盤無法處理同時按下這麼多鍵,因此你可以先按下鍵盤 `Alt` 鍵, 然後按下鍵盤 `SysRq` 鍵,再釋放鍵盤 `SysRq` 鍵,之後按下鍵盤上命令鍵 ``,最後釋放所有鍵。 h](hterm)}(h在 x86 架構上h]h在 x86 架構上}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjhKEhjubh definition)}(hhh](h)}(h;你可以按下鍵盤組合鍵 `ALT-SysRq-`。h](h你可以按下鍵盤組合鍵 }(hj6hhhNhNubhtitle_reference)}(h`ALT-SysRq-`h]hALT-SysRq-}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1j>hj6ubh。}(hj6hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhK?hj3ubh)}(hXG一些鍵盤可能沒有標識 'SySRq' 鍵。'SySRq' 鍵也被當做 'Print Screen'鍵。 同時有些鍵盤無法處理同時按下這麼多鍵,因此你可以先按下鍵盤 `Alt` 鍵, 然後按下鍵盤 `SysRq` 鍵,再釋放鍵盤 `SysRq` 鍵,之後按下鍵盤上命令鍵 ``,最後釋放所有鍵。h]h)}(hXG一些鍵盤可能沒有標識 'SySRq' 鍵。'SySRq' 鍵也被當做 'Print Screen'鍵。 同時有些鍵盤無法處理同時按下這麼多鍵,因此你可以先按下鍵盤 `Alt` 鍵, 然後按下鍵盤 `SysRq` 鍵,再釋放鍵盤 `SysRq` 鍵,之後按下鍵盤上命令鍵 ``,最後釋放所有鍵。h](h一些鍵盤可能沒有標識 ‘SySRq’ 鍵。’SySRq’ 鍵也被當做 ‘Print Screen’鍵。 同時有些鍵盤無法處理同時按下這麼多鍵,因此你可以先按下鍵盤 }(hj\hhhNhNubj?)}(h`Alt`h]hAlt}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1j>hj\ubh 鍵, 然後按下鍵盤 }(hj\hhhNhNubj?)}(h`SysRq`h]hSysRq}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1j>hj\ubh 鍵,再釋放鍵盤 }(hj\hhhNhNubj?)}(h`SysRq`h]hSysRq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j>hj\ubh& 鍵,之後按下鍵盤上命令鍵 }(hj\hhhNhNubj?)}(h``h]h }(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j>hj\ubh,最後釋放所有鍵。}(hj\hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKBhjXubah}(h]h ]h"]h$]h&]uh1hhj3ubeh}(h]h ]h"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]uh1jhjhKEhjubj)}(hP在 SPARC 架構上 你可以按下鍵盤組合鍵 `ALT-STOP-` 。 h](j")}(h在 SPARC 架構上h]h在 SPARC 架構上}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjhKHhjubj2)}(hhh]h)}(h;你可以按下鍵盤組合鍵 `ALT-STOP-` 。h](h你可以按下鍵盤組合鍵 }(hjhhhNhNubj?)}(h`ALT-STOP-`h]hALT-STOP-}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j>hjubh 。}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKHhjubah}(h]h ]h"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]uh1jhjhKHhjhhubj)}(h在串行控制檯(只針對 PC 類型的標準串口) 你可以發一個 ``BREAK`` ,然後在 5 秒內發送一個命令鍵, 發送 ``BREAK`` 兩次將被翻譯爲一個正常的 BREAK 操作。 h](j")}(h:在串行控制檯(只針對 PC 類型的標準串口)h]h:在串行控制檯(只針對 PC 類型的標準串口)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjhKLhjubj2)}(hhh]h)}(h你可以發一個 ``BREAK`` ,然後在 5 秒內發送一個命令鍵, 發送 ``BREAK`` 兩次將被翻譯爲一個正常的 BREAK 操作。h](h你可以發一個 }(hjhhhNhNubj)}(h ``BREAK``h]hBREAK}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh6 ,然後在 5 秒內發送一個命令鍵, 發送 }(hjhhhNhNubj)}(h ``BREAK``h]hBREAK}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh5 兩次將被翻譯爲一個正常的 BREAK 操作。}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKKhjubah}(h]h ]h"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]uh1jhjhKLhjhhubj)}(h在 PowerPC 架構上 按下鍵盤組合鍵 `ALT - Print Screen` (或者 `F13`) - `<命令鍵>` 。 `Print Screen` (或者 `F13`) - `<命令鍵>` 或許也能實現。 h](j")}(h在 PowerPC 架構上h]h在 PowerPC 架構上}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjhKPhjXubj2)}(hhh]h)}(h按下鍵盤組合鍵 `ALT - Print Screen` (或者 `F13`) - `<命令鍵>` 。 `Print Screen` (或者 `F13`) - `<命令鍵>` 或許也能實現。h](h按下鍵盤組合鍵 }(hjmhhhNhNubj?)}(h`ALT - Print Screen`h]hALT - Print Screen}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1j>hjmubh (或者 }(hjmhhhNhNubj?)}(h`F13`h]hF13}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j>hjmubh) - }(hjmhhhNhNubj?)}(h `<命令鍵>`h]h <命令鍵>}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j>hjmubh 。 }(hjmhhhNhNubj?)}(h`Print Screen`h]h Print Screen}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j>hjmubh (或者 }hjmsbj?)}(h`F13`h]hF13}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j>hjmubh) - }hjmsbj?)}(h `<命令鍵>`h]h <命令鍵>}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j>hjmubh 或許也能實現。}(hjmhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKOhjjubah}(h]h ]h"]h$]h&]uh1j1hjXubeh}(h]h ]h"]h$]h&]uh1jhjhKPhjhhubj)}(ht在其他架構上 如果你知道其他架構的組合鍵,請告訴我,我可以把它們添加到這部分。 h](j")}(h在其他架構上h]h在其他架構上}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjhKShjubj2)}(hhh]h)}(h`如果你知道其他架構的組合鍵,請告訴我,我可以把它們添加到這部分。h]h`如果你知道其他架構的組合鍵,請告訴我,我可以把它們添加到這部分。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKShjubah}(h]h ]h"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]uh1jhjhKShjhhubj)}(hr在所有架構上 寫一個字符到 /proc/sysrq-trigger 文件,例如:: echo t > /proc/sysrq-trigger h](j")}(h在所有架構上h]h在所有架構上}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjhKXhj"ubj2)}(hhh](h)}(h8寫一個字符到 /proc/sysrq-trigger 文件,例如::h]h7寫一個字符到 /proc/sysrq-trigger 文件,例如:}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKVhj4ubjz)}(hecho t > /proc/sysrq-triggerh]hecho t > /proc/sysrq-trigger}hjEsbah}(h]h ]h"]h$]h&]jjuh1jyhjhKXhj4ubeh}(h]h ]h"]h$]h&]uh1j1hj"ubeh}(h]h ]h"]h$]h&]uh1jhjhKXhjhhubeh}(h]h ]h"]h$]h&]uh1jhjhhhNhNubh)}(h8這個命令鍵 `` 是區分大小寫的。h](h這個命令鍵 }(hjehhhNhNubj?)}(h``h]h }(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1j>hjeubh 是區分大小寫的。}(hjehhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKZhjhhubeh}(h]id2ah ]h"]如何使用魔法 sysrq 鍵?ah$]h&]uh1jhjhhhjhKubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h``k``h]j)}(hjch]hk}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1hhjhKvhj^ubah}(h]h ]h"]h$]h&]uh1jhj[ubj)}(hhh]h)}(ht安全訪問祕鑰(SAK)殺掉在當前虛擬控制檯的所有程序,注意:參考 下面 SAK 節重要論述。h]ht安全訪問祕鑰(SAK)殺掉在當前虛擬控制檯的所有程序,注意:參考 下面 SAK 節重要論述。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKvhj~ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h``l``h]j)}(hjh]hl}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhjhKyhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h&顯示所有活動 cpu 的棧回溯。h]h&顯示所有活動 cpu 的棧回溯。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKyhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h``m``h]j)}(hjh]hm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhjhK{hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h0將導出當前內存信息到你的控制檯。h]h0將導出當前內存信息到你的控制檯。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK{hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h``n``h]j)}(hj# h]hn}(hj% hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj! ubah}(h]h ]h"]h$]h&]uh1hhjhK}hj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h0用於使所有實時任務變成普通任務。h]h0用於使所有實時任務變成普通任務。}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK}hj> ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h``o``h]j)}(hjc h]ho}(hje hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja ubah}(h]h ]h"]h$]h&]uh1hhjhKhj^ ubah}(h]h ]h"]h$]h&]uh1jhj[ ubj)}(hhh]h)}(h3將關閉系統(如果配置和支持的話)。h]h3將關閉系統(如果配置和支持的話)。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj~ ubah}(h]h ]h"]h$]h&]uh1jhj[ ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h``p``h]j)}(hj h]hp}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h3將導出當前寄存器和標誌位到控制檯。h]h3將導出當前寄存器和標誌位到控制檯。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h``q``h]j)}(hj h]hq}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h將導出每個 cpu 上所有已裝備的高精度定時器(不是完整的 time_list 文件顯示的 timers)和所有時鐘事件設備的詳細信息。h]h將導出每個 cpu 上所有已裝備的高精度定時器(不是完整的 time_list 文件顯示的 timers)和所有時鐘事件設備的詳細信息。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h``r``h]j)}(hj# h]hr}(hj% hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj! ubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h6關閉鍵盤的原始模式,設置爲轉換模式。h]h6關閉鍵盤的原始模式,設置爲轉換模式。}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj> ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h``s``h]j)}(hjc h]hs}(hje hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja ubah}(h]h ]h"]h$]h&]uh1hhjhKhj^ ubah}(h]h ]h"]h$]h&]uh1jhj[ ubj)}(hhh]h)}(h0將嘗試同步所有的已掛載文件系統。h]h0將嘗試同步所有的已掛載文件系統。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj~ ubah}(h]h ]h"]h$]h&]uh1jhj[ ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h``t``h]j)}(hj h]ht}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hB將導出當前所有任務列表和它們的信息到控制檯。h]hB將導出當前所有任務列表和它們的信息到控制檯。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h``u``h]j)}(hj h]hu}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h6將嘗試重新掛載已掛載文件系統爲只讀。h]h6將嘗試重新掛載已掛載文件系統爲只讀。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h``v``h]j)}(hj# h]hv}(hj% hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj! ubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h!強制恢復幀緩存控制檯。h]h!強制恢復幀緩存控制檯。}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj> ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h``v``h]j)}(hjc h]hv}(hje hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja ubah}(h]h ]h"]h$]h&]uh1hhjhKhj^ ubah}(h]h ]h"]h$]h&]uh1jhj[ ubj)}(hhh]h)}(h*觸發 ETM 緩存導出 [ARM 架構特有]h]h*觸發 ETM 緩存導出 [ARM 架構特有]}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj~ ubah}(h]h ]h"]h$]h&]uh1jhj[ ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h``w``h]j)}(hj h]hw}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h6導出處於不可中斷狀態(阻塞)的任務。h]h6導出處於不可中斷狀態(阻塞)的任務。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h``x``h]j)}(hj h]hx}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h在 ppc/powerpc 架構上用於 xmon 接口。 在 sparc64 架構上用於顯示全局的 PMU(性能監控單元)寄存器。 在 MIPS 架構上導出所有的 tlb 條目。h]h在 ppc/powerpc 架構上用於 xmon 接口。 在 sparc64 架構上用於顯示全局的 PMU(性能監控單元)寄存器。 在 MIPS 架構上導出所有的 tlb 條目。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h``y``h]j)}(hj# h]hy}(hj% hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj! ubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h2顯示全局 cpu 寄存器 [SPARC-64 架構特有]h]h2顯示全局 cpu 寄存器 [SPARC-64 架構特有]}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj> ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h``z``h]j)}(hjc h]hz}(hje hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja ubah}(h]h ]h"]h$]h&]uh1hhjhKhj^ ubah}(h]h ]h"]h$]h&]uh1jhj[ ubj)}(hhh]h)}(h導出 ftrace 緩存信息h]h導出 ftrace 緩存信息}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj~ ubah}(h]h ]h"]h$]h&]uh1jhj[ ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h ``0``-``9``h](j)}(h``0``h]h0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh-}(hj hhhNhNubj)}(h``9``h]h9}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h設置控制檯日誌級別,該級別控制什麼樣的內核信息將被打印到你的 控制檯。(比如 ``0`` ,將使得只有緊急信息,像 PANICs or OOPSes 才能到你的控制檯。)h](hq設置控制檯日誌級別,該級別控制什麼樣的內核信息將被打印到你的 控制檯。(比如 }(hj hhhNhNubj)}(h``0``h]h0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubhU ,將使得只有緊急信息,像 PANICs or OOPSes 才能到你的控制檯。)}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjhNubeh}(h]id3ah ]h"]什麼是命令鍵?ah$]h&]uh1jhjhhhjhK]ubj)}(hhh](j)}(h'好了,我能用他們做什麼呢?h]h'好了,我能用他們做什麼呢?}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hhhjhKubh)}(hp嗯,當你的 X 服務端或者 svgalib 程序崩潰,unraw(r) 非原始模式命令鍵是非常 方便的。h]hp嗯,當你的 X 服務端或者 svgalib 程序崩潰,unraw(r) 非原始模式命令鍵是非常 方便的。}(hj, hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj hhubh)}(hXVsak(k)(安全訪問祕鑰)在你嘗試登陸的同時,又想確保當前控制檯沒有可以獲取你的 密碼的特洛伊木馬程序運行時是有用的。它會殺掉給定控制檯的所有程序,這樣你 就可以確認當前的登陸提示程序是實際來自 init 進程的程序,而不是某些特洛伊 木馬程序。h]hXVsak(k)(安全訪問祕鑰)在你嘗試登陸的同時,又想確保當前控制檯沒有可以獲取你的 密碼的特洛伊木馬程序運行時是有用的。它會殺掉給定控制檯的所有程序,這樣你 就可以確認當前的登陸提示程序是實際來自 init 進程的程序,而不是某些特洛伊 木馬程序。}(hj: hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj hhubh important)}(h在其實際的形式中,在兼容 C2 安全標準的系統上,它不是一個真正的 SAK, 它也不應該誤認爲此。h]h)}(h在其實際的形式中,在兼容 C2 安全標準的系統上,它不是一個真正的 SAK, 它也不應該誤認爲此。h]h在其實際的形式中,在兼容 C2 安全標準的系統上,它不是一個真正的 SAK, 它也不應該誤認爲此。}(hjN hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjJ ubah}(h]h ]h"]h$]h&]uh1jH hj hhhjhNubh)}(h似乎其他人發現其可以作爲(系統終端聯機鍵)當你想退出一個程序, 同時不會讓你切換控制檯的方法。(比如,X 服務端或者 svgalib 程序)h]h似乎其他人發現其可以作爲(系統終端聯機鍵)當你想退出一個程序, 同時不會讓你切換控制檯的方法。(比如,X 服務端或者 svgalib 程序)}(hjb hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj hhubh)}(ha``reboot(b)`` 是個好方法,當你不能關閉機器時,它等同於按下"復位"按鈕。h](j)}(h ``reboot(b)``h]h reboot(b)}(hjt hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjp ubhX 是個好方法,當你不能關閉機器時,它等同於按下”復位”按鈕。}(hjp hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhj hhubh)}(h``crash(c)`` 可以用於手動觸發一個 crashdump,當系統卡住時。 注意當 crashdump 機制不可用時,這個只是觸發一個內核 crash。h](j)}(h ``crash(c)``h]hcrash(c)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh 可以用於手動觸發一個 crashdump,當系統卡住時。 注意當 crashdump 機制不可用時,這個只是觸發一個內核 crash。}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhj hhubh)}(h``sync(s)`` 在拔掉可移動介質之前,或者在使用不提供優雅關機的 救援 shell 之後很方便 -- 它將確保你的數據被安全地寫入磁盤。注意,在你看到 屏幕上出現 "OK" 和 "Done" 之前,同步還沒有發生。h](j)}(h ``sync(s)``h]hsync(s)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh 在拔掉可移動介質之前,或者在使用不提供優雅關機的 救援 shell 之後很方便 -- 它將確保你的數據被安全地寫入磁盤。注意,在你看到 屏幕上出現 “OK” 和 “Done” 之前,同步還沒有發生。}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhj hhubh)}(h``umount(u)`` 可以用來標記文件系統正常卸載,從正在運行的系統角度來看,它們將 被重新掛載爲只讀。這個重新掛載動作直到你看到 "OK" 和 "Done" 信息出現在屏幕上 纔算完成。h](j)}(h ``umount(u)``h]h umount(u)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh 可以用來標記文件系統正常卸載,從正在運行的系統角度來看,它們將 被重新掛載爲只讀。這個重新掛載動作直到你看到 “OK” 和 “Done” 信息出現在屏幕上 纔算完成。}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhj hhubh)}(hX"日誌級別 ``0`` - ``9`` 用於當你的控制檯被大量的內核信息衝擊,你不想看見的時候。 選擇 ``0`` 將禁止除了最緊急的內核信息外的所有的內核信息輸出到控制檯。(但是如果 syslogd/klogd 進程是運行的,它們仍將被記錄。)h](h 日誌級別 }(hj hhhNhNubj)}(h``0``h]h0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh - }(hj hhhNhNubj)}(h``9``h]h9}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh] 用於當你的控制檯被大量的內核信息衝擊,你不想看見的時候。 選擇 }(hj hhhNhNubj)}(h``0``h]h0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh 將禁止除了最緊急的內核信息外的所有的內核信息輸出到控制檯。(但是如果 syslogd/klogd 進程是運行的,它們仍將被記錄。)}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhj hhubh)}(h``term(e)`` 和 ``kill(i)`` 用於當你有些有點失控的進程,你無法通過其他方式殺掉 它們的時候,特別是它正在創建其他進程。h](j)}(h ``term(e)``h]hterm(e)}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubh 和 }(hj$hhhNhNubj)}(h ``kill(i)``h]hkill(i)}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubh 用於當你有些有點失控的進程,你無法通過其他方式殺掉 它們的時候,特別是它正在創建其他進程。}(hj$hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhj hhubh)}(h"just thaw ``it(j)`` " 用於當你的系統由於一個 FIFREEZE ioctl 調用而產生的文件 系統凍結,而導致的不響應時。h](h “just thaw }(hjRhhhNhNubj)}(h ``it(j)``h]hit(j)}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubhy “ 用於當你的系統由於一個 FIFREEZE ioctl 調用而產生的文件 系統凍結,而導致的不響應時。}(hjRhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhj hhubeh}(h]id4ah ]h"]'好了,我能用他們做什麼呢?ah$]h&]uh1jhjhhhjhKubj)}(hhh](j)}(ha有的時候 SysRq 鍵在使用它之後,看起來像是“卡住”了,我能做些什麼?h]ha有的時候 SysRq 鍵在使用它之後,看起來像是“卡住”了,我能做些什麼?}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzhhhjhKubh)}(hX7這也會發生在我這,我發現輕敲鍵盤兩側的 shift、alt 和 control 鍵,然後再次敲擊 一個無效的 SysRq 鍵序列可以解決問題。(比如,像鍵盤組合鍵 `alt-sysrq-z` ) 切換到另一個虛擬控制檯(鍵盤操作 `ALT+Fn` ),然後再切回來應該也有幫助。h](h這也會發生在我這,我發現輕敲鍵盤兩側的 shift、alt 和 control 鍵,然後再次敲擊 一個無效的 SysRq 鍵序列可以解決問題。(比如,像鍵盤組合鍵 }(hjhhhNhNubj?)}(h `alt-sysrq-z`h]h alt-sysrq-z}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j>hjubh6 ) 切換到另一個虛擬控制檯(鍵盤操作 }(hjhhhNhNubj?)}(h`ALT+Fn`h]hALT+Fn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j>hjubh. ),然後再切回來應該也有幫助。}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjzhhubeh}(h]id5ah ]h"]a有的時候 sysrq 鍵在使用它之後,看起來像是“卡住”了,我能做些什麼?ah$]h&]uh1jhjhhhjhKubj)}(hhh](j)}(hO我敲擊了 SysRq 鍵,但像是什麼都沒發生,發生了什麼錯誤?h]hO我敲擊了 SysRq 鍵,但像是什麼都沒發生,發生了什麼錯誤?}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubh)}(hX@有一些鍵盤對於 SysRq 鍵設置了不同的鍵值,而不是提前定義的 99 (查看在 ``include/uapi/linux/input-event-codes.h`` 文件中 ``KEY_SYSRQ`` 的定義) 或者就根本沒有 SysRq 鍵。在這些場景下,執行 ``showkey -s`` 命令來找到一個合適 的掃描碼序列,然後使用 ``setkeycodes 99`` 命令映射這個序列值到通用 的 SysRq 鍵編碼上(比如 ``setkeycodes e05b 99`` )。最好將這個命令放在啓動腳本 中。 哦,順便說一句,你十秒鐘不輸入任何東西就將退出 “showkey”。h](ha有一些鍵盤對於 SysRq 鍵設置了不同的鍵值,而不是提前定義的 99 (查看在 }(hjhhhNhNubj)}(h*``include/uapi/linux/input-event-codes.h``h]h&include/uapi/linux/input-event-codes.h}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh 文件中 }(hjhhhNhNubj)}(h ``KEY_SYSRQ``h]h KEY_SYSRQ}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhJ 的定義) 或者就根本沒有 SysRq 鍵。在這些場景下,執行 }(hjhhhNhNubj)}(h``showkey -s``h]h showkey -s}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh? 命令來找到一個合適 的掃描碼序列,然後使用 }(hjhhhNhNubj)}(h``setkeycodes 99``h]hsetkeycodes 99}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhF 命令映射這個序列值到通用 的 SysRq 鍵編碼上(比如 }(hjhhhNhNubj)}(h``setkeycodes e05b 99``h]hsetkeycodes e05b 99}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh )。最好將這個命令放在啓動腳本 中。 哦,順便說一句,你十秒鐘不輸入任何東西就將退出 “showkey”。}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjhhubeh}(h]id6ah ]h"]O我敲擊了 sysrq 鍵,但像是什麼都沒發生,發生了什麼錯誤?ah$]h&]uh1jhjhhhjhKubj)}(hhh](j)}(hI我想添加一個 SysRq 鍵事件到一個模塊中,如何去做呢?h]hI我想添加一個 SysRq 鍵事件到一個模塊中,如何去做呢?}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFhhhjhKubh)}(hX'爲了註冊一個基礎函數到這個表中,首先你必須包含 ``include/linux/sysrq.h`` 頭 文件,這個頭文件定義了你所需要的所有東西。然後你必須創建一個 ``sysrq_key_op`` 結構體,然後初始化它,使用如下內容,A) 你將使用的這個鍵的處理函數, B) 一個 help_msg 字符串,在 SysRq 鍵打印幫助信息時將打印出來,C) 一個 action_msg 字 符串,就在你的處理函數調用前打印出來。你的處理函數必須符合在 'sysrq.h' 文件中 的函數原型。h](hF爲了註冊一個基礎函數到這個表中,首先你必須包含 }(hjWhhhNhNubj)}(h``include/linux/sysrq.h``h]hinclude/linux/sysrq.h}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubh` 頭 文件,這個頭文件定義了你所需要的所有東西。然後你必須創建一個 }(hjWhhhNhNubj)}(h``sysrq_key_op``h]h sysrq_key_op}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubhX\ 結構體,然後初始化它,使用如下內容,A) 你將使用的這個鍵的處理函數, B) 一個 help_msg 字符串,在 SysRq 鍵打印幫助信息時將打印出來,C) 一個 action_msg 字 符串,就在你的處理函數調用前打印出來。你的處理函數必須符合在 ‘sysrq.h’ 文件中 的函數原型。}(hjWhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjFhhubh)}(hXv在 ``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' 指針 對應的鍵值操作函數。這是爲了防止在你註冊之後,該位置被改寫的情況。h](h在 }(hjhhhNhNubj)}(h``sysrq_key_op``h]h sysrq_key_op}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh5 結構體被創建後,你可以調用內核函數 }(hjhhhNhNubj)}(hA``register_sysrq_key(int key, const struct sysrq_key_op *op_p);``h]h=register_sysrq_key(int key, const struct sysrq_key_op *op_p);}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhU, 該函數在表中的 ‘key’ 對應位置內容是空的情況下,將通過 }(hjhhhNhNubj)}(h``op_p``h]hop_p}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhq 指針註冊這個操作 函數到表中 ‘key’ 對應位置上。在模塊卸載的時候,你必須調用 }(hjhhhNhNubj)}(hB``unregister_sysrq_key(int key, const struct sysrq_key_op *op_p)``h]h>unregister_sysrq_key(int key, const struct sysrq_key_op *op_p)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh 函數,該函數 只有在當前該鍵對應的處理函數被註冊到了 ‘key’ 對應位置時,纔會移除 ‘op_p’ 指針 對應的鍵值操作函數。這是爲了防止在你註冊之後,該位置被改寫的情況。}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjFhhubh)}(hX(魔法 SysRq 鍵系統的工作原理是將鍵對應操作函數註冊到鍵的操作查找表, 該表定義在 'drivers/tty/sysrq.c' 文件中。 該鍵表有許多在編譯時候就註冊進去的操作函數,但是是可變的。 並且有兩個函數作爲操作該表的接口被導出::h]hX+魔法 SysRq 鍵系統的工作原理是將鍵對應操作函數註冊到鍵的操作查找表, 該表定義在 ‘drivers/tty/sysrq.c’ 文件中。 該鍵表有許多在編譯時候就註冊進去的操作函數,但是是可變的。 並且有兩個函數作爲操作該表的接口被導出:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjFhhubjz)}(h,register_sysrq_key 和 unregister_sysrq_key.h]h,register_sysrq_key 和 unregister_sysrq_key.}hjsbah}(h]h ]h"]h$]h&]jjuh1jyhjhKhjFhhubh)}(h當然,永遠不要在表中留下無效指針,即,當你的模塊存在調用 register_sysrq_key() 函數,它一定要調用 unregister_sysrq_key() 來清除它使用過的 SysRq 鍵表條目。 表中的空指針是安全的。:)h]h當然,永遠不要在表中留下無效指針,即,當你的模塊存在調用 register_sysrq_key() 函數,它一定要調用 unregister_sysrq_key() 來清除它使用過的 SysRq 鍵表條目。 表中的空指針是安全的。:)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjFhhubh)}(hX7如果對於某種原因,在 handle_sysrq 調用的處理函數中,你認爲有必要調用 handle_sysrq 函數時,你必須意識到當前你處於一個鎖中(你同時也處於一箇中斷處理 函數中,這意味着不能睡眠)。所以這時你必須使用 ``__handle_sysrq_nolock`` 替代。h](hX如果對於某種原因,在 handle_sysrq 調用的處理函數中,你認爲有必要調用 handle_sysrq 函數時,你必須意識到當前你處於一個鎖中(你同時也處於一箇中斷處理 函數中,這意味着不能睡眠)。所以這時你必須使用 }(hj hhhNhNubj)}(h``__handle_sysrq_nolock``h]h__handle_sysrq_nolock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh 替代。}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjFhhubeh}(h]id7ah ]h"]I我想添加一個 sysrq 鍵事件到一個模塊中,如何去做呢?ah$]h&]uh1jhjhhhjhKubj)}(hhh](j)}(hO當我敲擊一個 SysRq 組合鍵時,只有標題打印出現在控制檯?h]hO當我敲擊一個 SysRq 組合鍵時,只有標題打印出現在控制檯?}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1hhhjhKubh)}(hXSysRq 鍵的輸出和所有其他控制檯輸出一樣,受制於控制檯日誌級別控制。 這意味着,如果內核以發行版內核中常見的 "quiet" 方式啓動,則輸出可能不會出現在實際 的控制檯上,即使它會出現在 dmesg 緩存中,也可以通過 dmesg 命令和 ``/proc/kmsg`` 文件的消費訪問到。作爲一個特例,來自 sysrq 命令的標題行將被傳遞給所有控制檯 使用者,就好像當前日誌級別是最大的一樣。如果只發出標題頭,則幾乎可以肯定內核日誌 級別太低。如果你需要控制檯上的輸出,那麼你將需要臨時提高控制檯日誌級別,通過使用 鍵盤組合鍵 `alt-sysrq-8` 或者::h](hX5SysRq 鍵的輸出和所有其他控制檯輸出一樣,受制於控制檯日誌級別控制。 這意味着,如果內核以發行版內核中常見的 “quiet” 方式啓動,則輸出可能不會出現在實際 的控制檯上,即使它會出現在 dmesg 緩存中,也可以通過 dmesg 命令和 }(hjBhhhNhNubj)}(h``/proc/kmsg``h]h /proc/kmsg}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubhXq 文件的消費訪問到。作爲一個特例,來自 sysrq 命令的標題行將被傳遞給所有控制檯 使用者,就好像當前日誌級別是最大的一樣。如果只發出標題頭,則幾乎可以肯定內核日誌 級別太低。如果你需要控制檯上的輸出,那麼你將需要臨時提高控制檯日誌級別,通過使用 鍵盤組合鍵 }(hjBhhhNhNubj?)}(h `alt-sysrq-8`h]h alt-sysrq-8}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1j>hjBubh 或者:}(hjBhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhj1hhubjz)}(hecho 8 > /proc/sysrq-triggerh]hecho 8 > /proc/sysrq-trigger}hjtsbah}(h]h ]h"]h$]h&]jjuh1jyhjhMhj1hhubh)}(h[在觸發了你感興趣的 SysRq 鍵命令後,記得恢復日誌級別到正常情況。h]h[在觸發了你感興趣的 SysRq 鍵命令後,記得恢復日誌級別到正常情況。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hj1hhubeh}(h]id8ah ]h"]O當我敲擊一個 sysrq 組合鍵時,只有標題打印出現在控制檯?ah$]h&]uh1jhjhhhjhKubj)}(hhh](j)}(h*我有很多問題時,可以請教誰?h]h*我有很多問題時,可以請教誰?}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM ubj)}(hhh]j)}(hN請教在內核郵件列表上的人,郵箱: linux-kernel@vger.kernel.org h](j")}(h0請教在內核郵件列表上的人,郵箱:h]h0請教在內核郵件列表上的人,郵箱:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjhMhjubj2)}(hhh]h)}(hlinux-kernel@vger.kernel.orgh]h)}(hjh]hlinux-kernel@vger.kernel.org}(hjhhhNhNubah}(h]h ]h"]h$]h&]refuri#mailto:linux-kernel@vger.kernel.orguh1hhjubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjhNubeh}(h]id9ah ]h"]*我有很多問題時,可以請教誰?ah$]h&]uh1jhjhhhjhM ubj)}(hhh](j)}(h致謝h]h致謝}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubj3)}(hhh](j8)}(h0Mydraal 撰寫了該文件h]h)}(hj h](h Mydraal <}(hj hhhNhNubh)}(hvulpyne@vulpyne.neth]hvulpyne@vulpyne.net}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:vulpyne@vulpyne.netuh1hhj ubh> 撰寫了該文件}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j7hjhhhjhNubj8)}(h1Adam Sulmicki 進行了更新h]h)}(hj5h](hAdam Sulmicki <}(hj7hhhNhNubh)}(hadam@cfar.umd.eduh]hadam@cfar.umd.edu}(hj>hhhNhNubah}(h]h ]h"]h$]h&]refurimailto:adam@cfar.umd.eduuh1hhj7ubh> 進行了更新}(hj7hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhj3ubah}(h]h ]h"]h$]h&]uh1j7hjhhhjhNubj8)}(hKJeremy M. Dolan 在 2001/01/28 10:15:59 進行了更新h]h)}(hj`h](hJeremy M. Dolan <}(hjbhhhNhNubh)}(hjmd@turbogeek.orgh]hjmd@turbogeek.org}(hjihhhNhNubah}(h]h ]h"]h$]h&]refurimailto:jmd@turbogeek.orguh1hhjbubh)> 在 2001/01/28 10:15:59 進行了更新}(hjbhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhj^ubah}(h]h ]h"]h$]h&]uh1j7hjhhhjhNubj8)}(hJCrutcher Dunnavant 添加鍵註冊部分 h]h)}(hICrutcher Dunnavant 添加鍵註冊部分h](hCrutcher Dunnavant <}(hjhhhNhNubh)}(hcrutcher+kernel@datastacks.comh]hcrutcher+kernel@datastacks.com}(hjhhhNhNubah}(h]h ]h"]h$]h&]refuri%mailto:crutcher+kernel@datastacks.comuh1hhjubh> 添加鍵註冊部分}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j7hjhhhjhNubeh}(h]h ]h"]h$]h&]jjuh1j2hjhMhjhhubeh}(h]id10ah ]h"]致謝ah$]h&]uh1jhjhhhjhMubeh}(h](linuxjeh ]h"](!linux 魔法系統請求鍵駭客tw_admin-guide_sysrqeh$]h&]uh1jhhhhhjhKexpect_referenced_by_name}jjsexpect_referenced_by_id}jjsubeh}(h]h ]h"]h$]h&]sourcejuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(jN generatorN datestampN source_linkN source_urlN toc_backlinksjfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcej _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}j]jasnameids}(jjjjj jjjjjj j jwjtjjjCj@j.j+jjjjjju nametypes}(jjj jjj jwjjCj.jjjuh}(jjjjjjjj jjj jjtj jjzj@jj+jFjj1jjjju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}jK sRparse_messages]transform_messages]hsystem_message)}(hhh]h)}(hhh]h:Hyperlink target "tw-admin-guide-sysrq" is not referenced.}hj\sbah}(h]h ]h"]h$]h&]uh1hhjYubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcejlineKuh1jWuba transformerN include_log]6Documentation/translations/zh_TW/admin-guide/sysrq.rst(NNNNta decorationNhhub.