この場合の SAK は、実際には Secure Attention Key を意味します .表示されているメッセージは、drivers/tty/tty_io.c で定義されているカーネル メッセージです。 SAK は、コンソールでのユーザーの安全なログインを保証するキーの組み合わせです。 Linux では、SAK は、SAK が呼び出された端末に接続されているすべてのプロセスを強制終了することでこれを保証します。 init
が期待されます getty
のように信頼できるログイン プロセスを再開します。 続いて login
または X サーバー ディスプレイ マネージャーを使用 .
リストされた PID は、アプリケーション CX_SC3
のスレッドの PID です。 SAK によって殺されました。
fd#n opened to the tty
強制終了されたプロセス/スレッドがファイル記述子 n
を持っていたことを意味します SAK が呼び出された端末に開かれました。
Linux では、SAK を呼び出す方法が 2 つあります:
<オール>
魔法の SysRq キーを使用 - 通常は Alt +SysRq +K (仮想端末) または Break K (シリアル コンソール)。あなたはすでに魔法の SysRq を無効にしようとしたので、これはあなたのケースではありません echo 0 > /proc/sys/kernel/sysrq
まで Breakを送る K 偶然の連続はありそうもない.
定義されたキー シーケンス (仮想端末) またはブレーク信号 (シリアル コンソール) を介して。シリアル コンソールでの SAK の可用性は、setserial
によって制御されます。 .
シリアル ラインのブレーク信号は、文字送信時間 (開始、停止、およびパリティ ビットを含む) よりも長い時間にわたって間隔値を連続的に送信することです。あなたの場合、ホスト マシンのシャットダウン中にブレーク信号の状態が現れる可能性が非常に高くなります。 setserial
までに、ターゲット デバイスのシリアル ポートで SAK をオフにしてみてください。 :
setserial /dev/ttyS0 ^sak
setserial -g /dev/ttyS0
でシリアル ポートの SAK 機能の状態を確認できます。 .オンにすると、SAK
と表示されます Flags:
の後 .起動後のオプションの自動設定については、BusyBox システムでは通常 /etc/init.d/rcS
である起動スクリプトを参照してください。 と /etc/rc.d/S*
または /etc/inittab
をチェックしてください 他の可能性のために。
paboukの回答の助けを借りて、なんとか問題を解決できました。 SAK
を許可する、私が最終的に発見したコードベースのソリューション ユーザー空間 API を使用して開くときにシリアル ポートで設定/設定解除するフラグは、こちらのスタック オーバーフローにあります。ユーザー空間 API を使用して Linux でシリアル ポート SAK オプションを無効にするにはどうすればよいですか?