昔は/etc/inittab
を変更しました。今、systemdを使用すると、tty [1-6]が自動的に起動するようですが、tty [4-6]を無効にするにはどうすればよいですか?
Systemdサービスファイルは1つしかないようで、%I
を使用して異なるttyセッションを識別しています。そのサービスを削除する必要がなく、各[email protected]
を手動で作成する必要がないことを願っています。
systemd
の下でgettyがオンデマンドで生成されるため、「余分な」TTYを無効にする必要はありません。詳細については、man systemd-getty-generator
を参照してください。デフォルトでは、この自動生成はVT6までのVTに対してのみ行われることに注意してください(従来のLinuxシステムを模倣するため)。
として レナートはブログ投稿で言う1:
より効率的にするために、ログインプロンプトがオンデマンドでのみ開始されるようになりました。 VTに切り替えると、gettyサービスはgetty @ tty2.service、getty @ tty5.serviceなどにインスタンス化されます。無条件にgettyプロセスを開始する必要がなくなるため、リソースを少し節約でき、起動が少し速くなります。
特定の数のgettyを構成したい場合は、適切なエントリを使用してlogind.conf
を変更するだけです。この例では3です。
NAutoVTs=3
1.実際、一連の投稿全体(現在は18番) systemd for Administrators は一読の価値があります。
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つの仮想コンソールが存在することに注意してください。
特定のTTY 4〜6でgettyを無効にしながら、1〜3および7〜9を機能させたままにするには、次のコマンドを実行します。
for i in {4..6}; do
systemctl mask getty@tty${i}.service
done
mask
は、サービスを効果的に無効にするsymlink /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
も失敗します。
うん、ネクロアンサー。乾杯。