GNU/Linux >> Linux の 問題 >  >> Linux

Systemd で tty を減らすには?

systemd のように「余分な」TTY を無効にする必要はありません。 gettys はオンデマンドで生成されます:man systemd-getty-generator を参照してください 詳細については。デフォルトでは、この自動スポーンは VT6 までの VT に対してのみ行われることに注意してください (従来の Linux システムを模倣するため)。

Lennart がブログ投稿で述べているように:

より効率的にするために、ログイン プロンプトはオンデマンドでのみ開始されるようになりました。 VT に切り替えると、getty サービスが [email protected][email protected] などにインスタンス化されます。 getty プロセスを無条件に開始する必要がなくなるため、リソースを少し節約でき、起動が少し速くなります。

特定の数の getty を設定したい場合は、logind.conf を変更するだけです。 適切なエントリで、この例では 3:

NAutoVTs=3



Debian ベースのシステムでは、(dbus サービスなしで) サーバーを構築したばかりの場合、起動時に 5 つの追加の getty を起動するファイルがあります:

/lib/systemd/system/getty.target.wants/getty-static.service

その中で、次のように述べています:

[Service]
Type=oneshot
ExecStart=/bin/systemctl --no-block start [email protected] [email protected] [email protected] [email protected] [email protected]
RemainAfterExit=true

このファイルを削除するだけで、余分な getty の生成が停止します。追加の getty を 1 つ (2 つの仮想コンソール用) 生成したい場合は、自由にリストを短くしてください。 tty1 で 1 つを自動的に取得するため、常に少なくとも 1 つの仮想コンソールが存在することに注意してください。

関連項目:dbus が見つからない場合、systemd-logind.service が起動に失敗する


特定の TTY 4-6 で gettys を無効にしながら、1-3 と 7-9 を動作させたままにするには、以下を実行します:

for i in {4..6}; do
  systemctl mask [email protected]${i}.service
done

mask シンボリックリンク /etc/systemd/system/{name} -> /dev/null を作成します これにより、サービスが効果的に無効になります。 systemctl start 経由で実行してみてください エラー Failed to start NAME.service: Unit NAME.service is masked. が表示されます

A.service Wants=masked.service をお持ちの場合 、次に start A 成功しますが、ジャーナルに依存関係の開始エラーも生成されます。

B.service Requires=masked.service をお持ちの場合 、次に start B も失敗します。

そう、ネクロアンサー。乾杯。


Linux
  1. LinuxでSystemdサービスを作成する方法

  2. ネットワークサービスでStandardioを使用して単純なスクリプトを作成するようにSystemdを構成するにはどうすればよいですか?

  3. Systemdサービスをパッケージ化する方法は?

  1. systemd サービスの出力をファイルにリダイレクトする方法

  2. systemd サービスを停止する方法

  3. n/a ステータスから systemd タイマーを取得する方法は?

  1. LinuxでSystemctlを使用してSystemdサービスを管理する方法

  2. Systemdのスタートアップスクリプトを書く方法は?

  3. シャットダウン直前にsystemdでスクリプトを実行する方法は?