Wie bekomme ich mit Systemd weniger Zeit?

29

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 .

Gänseblümchen
quelle

Antworten:

35

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).

Wie Lennart in einem Blogbeitrag 1 sagt :

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.

jasonwryan
quelle
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):

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

Darin heißt es:

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

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

Milli
quelle
2
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.

Ja, Nekro-Antwort. Prost.

temoto
quelle