web-dev-qa-db-ja.com

Linuxでの奇妙なコンソールの問題、通常はOOMの直前

だから私はこれが複数回起こることに気づきました。

私の記憶が正しければ、これは通常OOMの直前に発生するか、カーネルパニックが発生します。ttyを入力してからバックスペースしようとすると、同じ文字が逆に出力されます。

これは過去に私にとって興味深い奇妙なことでしたが、最近再び起こり、実際にそれを引き起こしている原因についてもっと興味を持っています。 (文字をSTD_OUTなどに送り返していますか?)

誰か考えがありますか?答えは面白いと思います。

hello worldと入力してから、バックスペースを試みた場合は、はっきりとわかります。

hello world..dlrow olleh
2
Kevin Quinn

これは、端末の設定が混乱しているためです。これは、stty -aを実行し、これを制御するechoprtオプションを探すことで確認できます。 stty(1)のマニュアルページ から、このオプションは「消去された文字を「\」と「/」の間で逆方向にエコーします」。

これをすばやく修正するには、stty saneと入力してから、バックスペースの場合はstty erase '^H'のように入力するか、「sttyerase」^? 'と入力します。削除用(引用符で囲まれた最後の2文字)。詳細については、 LinuxキーボードHOWTOのバックスペース/削除部分 を参照してください。

これがすべてのLinuxコンソール(Alt-F1、Alt-F2など)および/またはXベースのターミナルウィンドウで使用される疑似ttyで発生するかどうかを確認するのは興味深いことです。カーネルによって管理されているため、OOM条件がこれをどのように引き起こすかを理解できません。

歴史的な注意:echoprtオプションは元々 テレプリンター端末 バックスペース/削除操作を表示する唯一の方法であったため、画面の代わりにプリンターを備えていたために設計されました-これらはUnixが作成されたときの標準端末。 この記事 Linuxターミナル(TTY)サブシステムについての良い説明があります。

2
RichVel