属性:
https :
//fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key これは、
Credits によるオリジナルの作品に基づいてい
たMydraal
によって書かれたAdam Sulmicki
によって更新されたJeremy M. Dolanによって更新された2001/01/28 10:15:59
追加クラッチャー・ダンナヴァンによる
https://askubuntu.com/a/11194/102029 mneissはLaunchPadのリンクを提供しました。
内容
sysrqとは何ですか?
RESIUB(O)が機能しないのはなぜですか?
1 sysrqを希望どおりに動作させるにはどうすればよいですか?
1.1魔法のSysRqキーとは何ですか?
1.2マジックSysRqキーを有効にするにはどうすればよいですか?
1.3マジックSysRqキーを使用するにはどうすればよいですか?
1.4「コマンド」キーとは何ですか?
1.5さて、それで何のために使うことができますか?
1.6トラブルシューティング
1.6.1ハンギング初期化スクリプトを実行する前に取得
1.6.2を時々 SysRqを私は何を行うことができ、それを使用した後に「立ち往生」を取得するようですか?
1.6.3 SysRqにアクセスしましたが、何も起こらないようですが、何が問題なのですか?
1.6.4 SysRQキーイベントをモジュールに追加したいのですが、どのように機能しますか?
1.6.5結論
1.6.6付録
注。
あなたは使用して見つけることがCtrl+にF役立つ目次を使用します。
SysRqとは何ですか?
システムファイルの破損やデータの損失につながるディスク破損のリスクを制限しながら、フリーズまたはロックした後、マシンの使用を回復する一般的なよく使用されている方法は、
Alt+ SysRq+ を使用rしてからs、次にe、次にi、次にu、次にb、/または必要に応じて(o)
これは、8.04LTS以上から現在の13.04リリースまでのすべてのフレーバーを通じて、多くの人(つまり、私とジェームス)の期待どおりに機能していません。
RESIUB(O)が機能しないのはなぜですか?
LaunchPad Bug 194676にあるこのバグの説明を検討してください。
問題の説明:
デフォルトでは、SysRqはUbuntuデスクトップシステムでデフォルトで有効になっています。これは、システムがロックアップした場合に非常に貴重であり、できるだけ静かに停止するか、問題をデバッグします。ただし、多くの人は、キーボードからだけではあるが、現在のメモリの内容をコンソール(またはdmesg)にダンプするように要求できることに驚いています。
openSUSEは、SysRqにデフォルトの176のビットマスクを設定します。デフォルトでは、同期、再起動、「読み取り専用での再マウント」に制限されます。これにより、デフォルトでsysrqを使用して、適切に聞こえるメモリを検査するユーザーが停止します。
Ubuntu開発者はこれについて何かをする必要があると考えており、言及された観察の可能性のある複雑さを考慮した最良のソリューションは、デフォルトでビットマスク176 sysrqを適用し、sysrqを希望どおりに設定する必要性を作成することです。ビットマスク176は唯一のことができますS、U、B同期、再マウントに取り付けられたパーティションと再起動されています。
完全なバグレポートとコメントを読むと、システムに適用できるオプションがいくつか強調表示されます。
異なるハードウェア、カーネル、キーボード、ビットマスクの累積的な影響は、sysrqが異なる人々に対して異なる動作をすることを意味します。
システムがsysrqをどのように使用しているかに関するtxt出力を取得する1つの方法は、ttyからsysrqコマンドを適用することです(システムがロック/フリーズに苦しんでいない場合)。これを行うと、sysrqが完全に無効化されていないが、ビットマスク176を使用している可能性があります。
13.04デスクトップamd64 liveDVDおよび13.04デスクトップamd64インストールで/ proc / sys / kernel / sysrqを検索すると、デフォルトでは現在sysrqがビットマスク176のままになっていることが確認されます。
sysrqが機能する場合; 「10-magic-sysrqの設定を変更しなかった場合、誰が変更したか?」と尋ねる価値があるかもしれません。
1 sysrqを希望どおりに動作させるにはどうすればよいですか?
以下はhttps://fedoraproject.org/wiki/QA/Sysrqの編集されたコピーと貼り付けです。
1.1魔法のSysRqキーとは何ですか?
これは、完全にロックされていない限り、他に何をしていてもカーネルが応答する「魔法の」キーコンボです。
1.2マジックSysRqキーを有効にするにはどうすればよいですか?
sysrqはUbuntuカーネルに組み込まれていますが、起動時にはデフォルトで10-magic-sysrq.confを使用して無効になっています。
起動時に再度有効にするには、/ etc / sysctl.d / 10-magic-sysrq.confファイルを編集する必要があります。つまり、この行のコメントを解除すると、sysrqのすべての機能が有効になります。
# 1 - enable all functions of sysrq
SysRqがコンパイルされたカーネルを実行する場合、/ proc / sys / kernel / sysrqは、SysRqキーを介して起動できる機能を制御します。/ proc / sys / kernel / sysrqで可能な値のリストは次のとおりです。
0 - disable sysrq completely
1 - enable all functions of sysrq
>1 - bitmask of allowed sysrq functions (see below for detailed function description):
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 signalling of processes (term, kill, oom-kill)
128 - allow reboot/poweroff
176 - allow only sync, reboot and "remount read-only"
256 - allow nicing of all RT tasks
次のコマンドを使用して、ファイルに値を設定できます。
echo "number" >/proc/sys/kernel/sysrq
したがって、完全に有効にするには、次のようになります。
echo "1" > /proc/sys/kernel/sysrq
または、実行して有効にすることもできます。
sysctl -w kernel.sysrq=1
注意。
/ proc / sys / kernel / sysrqの値は、キーボードを介した呼び出しのみに影響します。/ proc / sysrq-triggerを介した操作の呼び出しは常に許可されます(管理者権限を持つユーザーが以下を参照してください)。
1.3マジックSysRqキーを使用するにはどうすればよいですか?
Ubuntuデスクトップ
キーコンボAlt+ SysRq+を押しますcommand key。
NB-他のシステムとキーボードのその他のデフォルト設定については、このセクションとトラブルシューティングのセクションの注意を参照してください。
選択した任意のキャラクターを設定することが可能です:すべてのアーキテクチャ
/ proc / sysrq-triggerに文字を書き込みます。
echo t > /proc/sysrq-trigger
注Tとして動作を設定しますSysRq
。
一部のキーボードには、というラベルの付いたキーがない場合がありますSysRq。SysRqキーとしても知られているPrint Screenキー。また、一部のキーボードは非常に多くのキーが同時に押されて扱うことができないので、あなたはより良い運を持つ可能性がありますAlt+をSysRq- SysRqして押しcommand key、その後、すべてを解放します。これに関する詳細については、https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key.3Fに基づいたQAの全文を参照してください。
1.4「コマンド」キーとは何ですか?
'b' - Will immediately reboot the system without syncing or unmounting your disks.
'c' - Will perform a kexec reboot in order to take a crashdump.
'd' - Shows all locks that are held.
'e' - Send a SIGTERM to all processes, except for init.
'f' - Will call oom_kill to kill a memory hog process.
'g' - Used by kgdb on ppc and sh platforms.
'h' - Will display help (any key that is not listed here will bring forth help )
'i' - Send a SIGKILL to all processes, except for init.
'k' - Secure Access Key (SAK) Kills all programs on the current virtual terminal.
注意。
SAKセクションの以下の重要なコメントを参照してください。
'l' - Shows a stack backtrace for all active CPUs.
'm' - Will dump current memory info to your console.
'n' - Used to make RT tasks nice-able
'o' - Will shut your system off (if configured and supported).
'p' - Will dump the current registers and flags to your console.
'q' - Will dump a list of all running timers.
'r' - Turns off keyboard raw mode and sets it to XLATE.
's' - Will attempt to sync all mounted filesystems.
't' - Will dump a list of current tasks and their information to your console.
'u' - Will attempt to remount all mounted filesystems read-only.
'v' - Dumps Voyager SMP processor info to your console.
'w' - Dumps tasks that are in uninterruptable (blocked) state.
'x' - Used by xmon interface on ppc/powerpc platforms.
'0'-'9' - Sets the console log level, controlling which kernel messages will be printed to your console. ('0', for example would make it so that only emergency messages like PANICs or OOPSes would make it to your console.)
1.5さて、それで何のために使うことができますか?
rXサーバーまたはsvgalibプログラムがクラッシュした場合、Un awは非常に便利です。
Sa k(セキュアアクセスキー)は、ログインしようとするときにパスワードを取得する可能性のあるトロイの木馬プログラムがコンソールで実行されていないことを確認する場合に役立ちます。指定されたコンソール上のすべてのプログラムを強制終了するため、表示されるログインプロンプトが実際には何らかのトロイの木馬プログラムではなくinitからのものであることを確認できます。他の人は、(システムアテンションキー)として便利だと感じています。これは、コンソールを切り替えさせないプログラムを終了したいときに便利です。(たとえば、Xまたはsvgalibプログラム。)
注。
本当の形では、c2準拠のシステムのような真のSAKではなく、そのように誤解されるべきではありません。
再bあなたがシャットダウンできませんときOOT良いです。
注意。
一般に、u最初にマウントすることをお勧めします
Crashdumpはc、システムがハングしたときに手動でrashdump をトリガーするために使用できます。
注意。
カーネルは、CONFIG_KEXECを有効にして構築されている必要があります!
同期は、システムがロックされている場合にs最適です。ディスクをync できるため、データ損失やfsckingの可能性が確実に減少します。
警告
「OK」と「完了」が画面に表示されるまで、同期は行われません。(カーネルが実際に争っている場合、「OK」または「完了」のメッセージが表示されない場合があります。
Uマウントは、Sync と同じ方法で基本的に便利です。
ログレベル0- 9コンソールが見たくないカーネルメッセージであふれている場合に便利です。選択する0と、最も緊急のカーネルメッセージ以外のすべてがコンソールに到達しなくなります。
注意。
syslogd / klogdが生きている場合、それらはまだ記録されます
T ermとk illは、他の方法を殺すことができない何らかの暴走プロセスがある場合、特に他のプロセスを生成する場合に役立ちます。
注意。
悪いカーネルパニックが発生した場合は、Alt+ Sysrq+ e、Alt+ Sysrq+ u、Alt+ Sysrq+ i、最後にAlt+ Sysrq+b
1.6トラブルシューティング
1.6.1 initscriptが実行される前のハング
initscriptが実行される前にマシンがハングしている場合は、 sysrq_always_enabled=1
1.6.2 SysRqを使用した後に「スタック」したように見える場合がありますが、どうすればよいですか?
タッピングshift、alt、およびcontrolキーボードの両側に、問題を解決します再び無効にSysRqシーケンスを打ちます。(つまり、alt+ sysrq+のようなものz)。
別の仮想コンソール(Ctrl+ Alt+ Fn1- Fn6)に切り替えてから再び戻るCtrl+ Alt+ Fn7も役立つはずです。
1.6.3を押しましたSysRqが、何も起こらないようですが、何が問題なのですか?
SysRq定義済みの0x54とは異なるスキャンコードを送信するキーボードがいくつかあります。そのSysRqため、特定のキーボードですぐに機能しない場合は、実行showkey -s
して適切なスキャンコードシーケンスを見つけます。次にsetkeycodes <sequence> 84
、このシーケンスを通常のSysRqコードに定義するために使用します(84は0x54の10進数です)。おそらく、このコマンドをブートスクリプトに含めるのが最善です。
警告 10秒間何も入力しないで
終了showkey
します。
1.6.4 SysRqモジュールにキーイベントを追加したいのですが、どのように機能しますか?
基本関数をテーブルに登録するには、最初にheaderを含めるinclude/linux/sysrq.h
必要があります。これにより、必要な他のすべてが定義されます。次に、sysrq_key_op構造体を作成し、それを設定する必要があります...
sysrq_key_opが作成された後、カーネル関数register_sysrq_key(int key、struct sysrq_key_op * op_p);を呼び出すことができます。これは、テーブルのそのスロットが空白の場合、テーブルキー「key」で「op_p」が指す操作を登録します。モジュールのアンロード時に、関数unregister_sysrq_key(int key、struct sysrq_key_op * op_p)を呼び出す必要があります。この関数は、キー 'key'から 'op_p'が指すキーopを削除します。スロット。これは、登録してからスロットが上書きされた場合です。
Magic SysRqシステムは、 'drivers / char / sysrq.c'で定義されているキーopルックアップテーブルに対してキー操作を登録することにより動作します。このキーテーブルには、コンパイル時に多数の操作が登録されていますが、可変であり、2つの関数がregister_sysrq_keyおよびunregister_sysrq_keyへのインターフェイスとしてエクスポートされます。もちろん、テーブルに無効なポインタを残さないでください。すなわち; register_sysrq_key()を呼び出したモジュールが終了したら、unregister_sysrq_key()を呼び出して、使用したsysrqキーテーブルエントリをクリーンアップする必要があります。
注意。
テーブル内のNULLポインターは常に安全です。
何らかの理由で、handle_sysrqによって呼び出された関数内からhandle_sysrq関数を呼び出す必要があると感じた場合は、ロック状態にあることに注意する必要があります(また、割り込みハンドラーにいるため、スリープしません!)。代わりに__handle_sysrq_nolockを呼び出す必要があります。
1.6.5結論
使用Alt+ SysRq+ S、その後U、その後B、すべてのマウントされたファイルシステムを再マウントして、必要に応じて再起動しようとする試みを同期します。ものをシステムファイルに変更することなく。+ + がシステムを再起動しない
場合は、+ + (または/ proc / sys / kernel /を編集した後) sysrqを使用してシステムの再起動とシャットダウンを有効にするsysrqビットマスク上記の方法のいずれかでこれを行うことができます。AltSysRqBAltSysRqBO
1.6.6付録:
参照-http://ubuntuforums.org/showthread.php?t = 617349およびhttps://www.kernel.org/doc/Documentation/sysrq.txt
SysRqをに関するアップルのMacBookのキーボードのトラブルを持つ人のために参照してください。https://help.ubuntu.com/community/AppleKeyboardとhttps://bugs.launchpad.net/mactel-support/+bug/262408
比較的興味深い情報- 2013年8月17日のBBCプログラム「クリック」と「サイバー戦争」のエピソードを見て、本当に注目を集めました。プログラムには独自のWebサイトもあります。プログラムを視聴できない場合はクリックしてください。FAWC