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
も失敗します。
そう、ネクロアンサー。乾杯。