私は、WordpressやPrestaShopなどのいくつかのWebアプリケーションを管理するためのCentOSディストリビューションとApacheインスタンスを備えたクラウドサーバーを持っています。
ログファイル()にエラーが報告されていることを確認しましたvar/log/
。
- 特に
messages
:May 30 11:54:41 xxx00962 systemd: Starting Serial Getty on ttyS0... May 30 11:54:41 xxx00962 systemd: Started Serial Getty on ttyS0. May 30 11:54:51 xxx00962 systemd: [email protected] holdoff time over, scheduling restart. May 30 11:54:51 xxx00962 systemd: Stopping Serial Getty on ttyS0...
- そして
secure
:May 30 15:51:30 xxx00962 agetty[24693]: /dev/ttyS0: not a character device
xxx00962
(匿名)ホスト名はどこにありますか?
何が役に立つのかわかりませんが、getty
この問題を解決したいと思います。
誰かが私を助け、getty
これがどのように機能するかを説明できますか?
答え1
getty
最も古いUNIXプログラムの一つです。あなたはWietse Venemaが約20歳agetty
のときに書いた同様のプログラムを使用しています。getty
このプログラムが実行される理由は、システムが文字デバイスファイル名を持つシリアルデバイスに接続されている端末があると考えているからです/dev/ttyS0
。システムが起動すると、カーネルコマンドラインでaの後に表示されるため、名前付きプログラムがsystemd-getty-generator
表示されます。ジェネレータはテンプレートサービスユニットをインスタンス化します。サービスのアクティブ化の試みが記録されます。ttyS0
/sys/class/tty/console/active
console=
[email protected]
[email protected]
このサービスは、デバイスを介した端末ログインを提供します。
何らかの理由で(2014年または最新バージョンのsystemdを使用すると仮定すると)、システムは一貫性がありません。今/dev/ttyS0
だと信じていいえキャラクターデバイスファイル、言及する必要がない端末としての文字デバイス。 systemd-getty-generator
ブートローダーにいると思います。これを変更する方法は少なくとも2つあります。ご質問によってどのようなシナリオが発生するかを判断することはできません。
それを修正してください/dev/ttyS0
。
- 文字デバイスである必要がありますが、そうでない場合は、実行時に何が変わったかを確認してください。
- 文字デバイスでない場合は、スキャン時にブートローダが
systemd-getty-generator
ターミナルデバイスである理由を確認してください。また、コマンドラインからカーネルにコンソールであることを伝えないでください。シリアルポートがないため(端末が接続されているかどうかにかかわらず)、文字デバイスでなければならない場合は、存在しないシリアルポートがコンソールであるとカーネルに通知するのは完全に間違っています。 - 端末である文字デバイスである必要がありますが、その端末からログインできないようにしたい場合は、コマンドラインからカーネルにコンソールと通知するのをやめてください。
- 文字デバイス(端末など)でなければなりませんが、カーネルコンソールにしたいのですが。まだこの端末(または実際には他の非仮想端末コンソール)からログインできないようにするには、
systemd-getty-generator
基本機能が必要な機能ではないので無効にしてください。
追加読書
- https://unix.stackexchange.com/a/316279/5132
- レナート・ペトリング(2013-10-07)。
systemd-getty-generator
。システムのマニュアルページ。 freedesktop.org. - レナート・ペトリング(2014-02-24)。getty-generator:使用する前にttyを確認してください。システムd。 GitHub。
- ベルナー・ピンク(Werner Fink)とカレル・ジュッカー(Karel Zucker)。
agetty
。 Ubuntu 15.04のマニュアルページ。 - Linuxでttys0、ttyUSB0、ttyAMA0の違いは何ですか?
- UnixのデフォルトTTY番号は何ですか?
- https://unix.stackexchange.com/a/248313/5132
答え2
すべてのUnixシステムでは、getty
これはシリアルポート接続(ハードワイヤーターミナルまたはモデム回線)にログインプロンプトを表示し、ユーザーがログインするのを待つプロセスの伝統的な名前です。
最新(物理)システムでは、getty
テキストモードの仮想コンソールでログインプロンプトを提供するプロセスを見つけるのが一般的です。システムにリモートコンソールアクセスハードウェア(HP iLO、Sun / Oracle ILOM、Fujitsu IRMC、またはOracle iDRAC)がある場合は、通常リモートコンソールインタフェースを介してSSH接続を確立してアクセスできる仮想シリアルポートを提供します。システム管理者はgetty
そのシリアルポートのプロセスを設定するだけです。
これは通常、JavaまたはHTML5を使用するWebベースのリモートコンソールインタフェースを使用するよりもはるかに信頼性があります。仮想シリアルポートはPCキーボードをエミュレートする必要がないため、受信文字をキーボードスキャンコードに逆マッピングする必要はありません。実際に構成されたキーボードレイアウトは、逆方向マッピング操作に使用されるキーボードレイアウトと一致します。出力側では、表示可能な画像を取得するためにビデオRAMを取得しようとする必要はありません。
仮想マシンでは、仮想シリアルポートはほぼ同じ方法と同じ理由で使用できます。つまり、仮想シリアルポート接続には、「仮想KVM」よりもデータ変換が少なくて済みます。
特定のケースでは、クラウド VM OS は明らかに仮想シリアルポートを想定するように構成されていますが、/dev/ttyS0
仮想シリアルポートは現在 VM に存在しないようです.おそらく、クラウドインフラストラクチャは仮想マシンの初期化中にそれを使用できますか?
今は役に立つことはないようですので、そのプロセスをgetty
閉じることができます。/dev/ttyS0
これを行うには、次のコマンドがおそらく最も簡単な解決策です。
systemctl stop [email protected]
systemctl disable [email protected]
最初のコマンドは次systemd
の再起動までプロセスの開始試行を停止するように指示し、2番目のコマンドはそのプロセスを永久に無効にしたとマークします。
2番目のコマンドを使用して最初のコマンドを元に戻す前に、システムを再起動してください。したがって、わからない場合は、最初のコマンドを使用して数日待って問題が発生しているかどうかを確認できます。仮想マシンにアクセスできない場合は、再起動するとすべてが元の状態に復元されます。
〜のようにJdeBPの答えから、起動オプションも確認する必要があります。console=ttyS0
ここにリストされている場合、プロセスは自動的に作成されsystemd
ます。getty
/dev/ttyS0
答え3
/etc/systemd/journald.conf
編集と設定でこの問題を解決しました。
MaxLevelSyslog=warning