In den alten Tagen habe ich gerade geändert /etc/inittab. Nun, mit systemd scheint es tty [1-6] automatisch zu starten. Wie soll ich tty [4-6] deaktivieren?
Sieht so aus, als gäbe es nur eine systemd-Servicedatei, und sie verwendet a %I, um verschiedene tty-Sitzungen zu unterscheiden. Ich hoffe, ich muss diesen Dienst nicht entfernen und jeden [email protected]manuell erstellen .
Es besteht keine wirkliche Notwendigkeit, "zusätzliche" TTYs zu deaktivieren, da diese bei systemdBedarf generiert werden: siehe man systemd-getty-generatorfür Details. Beachten Sie, dass dieses automatische Laichen standardmäßig nur für VTs bis VT6 durchgeführt wird (um herkömmliche Linux-Systeme nachzuahmen).
Um die Arbeit effizienter zu gestalten, werden Anmeldeaufforderungen nur noch bei Bedarf gestartet. Wenn Sie zu den VTs wechseln, wird der getty-Dienst zu [email protected], [email protected] usw. instanziiert. Da wir die getty-Prozesse nicht mehr unbedingt starten müssen, sparen wir ein bisschen Ressourcen und beschleunigen den Start.
Wenn Sie eine bestimmte Anzahl von Gettys konfigurieren möchten, können Sie logind.confdies in Beispiel 3 mit dem entsprechenden Eintrag ändern :
NAutoVTs=3
1. Tatsächlich lohnt es sich , die gesamte Reihe der Posts (derzeit 18) systemd für Administratoren zu lesen.
Danke für die Antwort, Jason. Die Anwendung meines Unternehmens wird auf einem physischen Server ausgeliefert, und bei älteren Distributionen würden wir inittab ändern, um andere ttys zu sperren.
Jcbwlkr
11
Auf Debian-basierten Systemen gibt es eine Datei, die bewirkt, dass beim Start 5 zusätzliche Getty gestartet werden, wenn Sie gerade einen Server erstellt haben (ohne dbus-Dienst):
Durch einfaches Löschen dieser Datei wird das Laichen des zusätzlichen Getty verhindert. Fühlen Sie sich frei, die Liste zu kürzen, wenn Sie nur ein zusätzliches getty erzeugen möchten (für 2 virtuelle Konsolen). Beachten Sie, dass Sie auf tty1 automatisch eine erhalten, sodass Sie immer mindestens eine virtuelle Konsole haben.
NB: Die Datei gehört dem systemd-Paket. Verwenden Sie daher dpkg-divertzuerst , um sie zu ändern oder zu löschen . Aber es gibt auch eine systemd-native Art und Weise , um es aus dem Weg - Lauf sudo systemctl mask getty-static.serviceund stellen Sie sich Ihr eigenes Bild in/etc
Josip Rodin
2
maskWenn ein aktivierter Dienst laut ist , wäre es sauberer, ein Gerät mit demselben Namen in /etczu erstellen , um dessen Inhalt zu überschreiben. Verwenden Sie ExecStart = / bin / true, wenn Sie null statische Getty starten möchten.
Sourcejedi
die andere systemd richtige Weg ist , die Paketversion (sollten Sie wirklich NIE löschen Sie diese Datei) außer Kraft zu setzen sudo systemctl edit getty-static.service, die eine Überschreibungsdatei erstellen wird , die Vorrang vor dem nimmt /libman
ryeager
8
Führen Sie Folgendes aus, um Gettys auf bestimmten TTYs 4-6 zu deaktivieren, während möglicherweise 1-3 und 7-9 funktionieren:
for i in {4..6}; do
systemctl mask getty@tty${i}.service
done
maskErstellt einen Symlink, /etc/systemd/system/{name} -> /dev/nullder den Dienst effektiv deaktiviert. Beim Versuch, es über auszuführen, systemctl startwird ein Fehler angezeigtFailed to start NAME.service: Unit NAME.service is masked.
Wenn Sie über A.service verfügen, ist dies erfolgreich Wants=masked.service, es start Awird jedoch auch ein Fehler beim Starten der Abhängigkeit im Journal generiert.
Wenn du B.service hast Requires=masked.service, dann start Bwird das auch scheitern.
Auf Debian-basierten Systemen gibt es eine Datei, die bewirkt, dass beim Start 5 zusätzliche Getty gestartet werden, wenn Sie gerade einen Server erstellt haben (ohne dbus-Dienst):
Darin heißt es:
Durch einfaches Löschen dieser Datei wird das Laichen des zusätzlichen Getty verhindert. Fühlen Sie sich frei, die Liste zu kürzen, wenn Sie nur ein zusätzliches getty erzeugen möchten (für 2 virtuelle Konsolen). Beachten Sie, dass Sie auf tty1 automatisch eine erhalten, sodass Sie immer mindestens eine virtuelle Konsole haben.
Siehe auch: systemd-logind.service startet nicht, wenn dbus fehlt
quelle
dpkg-divert
zuerst , um sie zu ändern oder zu löschen . Aber es gibt auch eine systemd-native Art und Weise , um es aus dem Weg - Laufsudo systemctl mask getty-static.service
und stellen Sie sich Ihr eigenes Bild in/etc
mask
Wenn ein aktivierter Dienst laut ist , wäre es sauberer, ein Gerät mit demselben Namen in/etc
zu erstellen , um dessen Inhalt zu überschreiben. Verwenden Sie ExecStart = / bin / true, wenn Sie null statische Getty starten möchten.sudo systemctl edit getty-static.service
, die eine Überschreibungsdatei erstellen wird , die Vorrang vor dem nimmt/lib
manFühren Sie Folgendes aus, um Gettys auf bestimmten TTYs 4-6 zu deaktivieren, während möglicherweise 1-3 und 7-9 funktionieren:
mask
Erstellt einen Symlink,/etc/systemd/system/{name} -> /dev/null
der den Dienst effektiv deaktiviert. Beim Versuch, es über auszuführen,systemctl start
wird ein Fehler angezeigtFailed to start NAME.service: Unit NAME.service is masked.
Wenn Sie über A.service verfügen, ist dies erfolgreich
Wants=masked.service
, esstart A
wird jedoch auch ein Fehler beim Starten der Abhängigkeit im Journal generiert.Wenn du B.service hast
Requires=masked.service
, dannstart B
wird das auch scheitern.Ja, Nekro-Antwort. Prost.
quelle