sysrq コマンドで実行され、syslog のメモリ情報を取得し、スクリプトが syslog をコピーするスクリプトがあります。
echo -m > /proc/sysrq-trigger
ドキュメントによると、カーネルレベルで "handle_sysrq"が呼び出され、割り込みコンテキストで実行されますが、sysrq
それをトリガする方法は2つあります。そうですか?
- 1つはキーボードのキーの組み合わせです。そして
- 別の方法は、適切な文字を
/proc/sysrq-trigger
ファイルに書き込むことです。
syslog/dmesg
メモリ情報がエコーが返される直前に書き込まれるのか、memory-info
エコーが返された後に書き込まれるのかを知りたいです。
答え1
あなたの基本的な質問は、syslogをコピーするときにメモリ情報を書き込む方法です。
コードを確認しませんでしたが、すべて非同期であると仮定します。ジョブをシリアル化するには/dev/kmsg
;そこに書き込むすべての内容がカーネルバッファに残ります。そのように
echo m > /proc/sysrq-trigger
echo "whatever you want" > /dev/kmsg
/dev/kmsg
これで問題は解決します...後で正しい内容をコピーしたことを確認するために、メッセージにシリアルメッセージを追加するか、メモリダンプを2つのメッセージにラップすることもできます。