So schließen Sie ein tty

14

Ich habe mehrere ttys geöffnet und kenne die Tastenkombination zum Schließen eines tty nicht. Ich benutze Arch Linux.

ngwdaniel
quelle
2
Du hast sie nicht geöffnet, sie sind offen. Sie haben gerade VT geändert. Wenn Sie sich von einem abmelden möchten, verwenden Sie exit. Wenn Sie nicht angemeldet sind, machen Sie sich keine Sorgen. Es war vorher da, nur dass du es nicht angeschaut hast.
Goldlöckchen
1
@goldilocks, VTs können dynamisch zugewiesen und geschlossen werden. Die erste wird immer zugewiesen, wenn sich die Konsole darauf befindet, initund X weist im Allgemeinen die nächsten zu, Sie können jedoch weitere zuweisen. Das Öffnen des /dev/ttyxGeräts reicht aus, um es zuzuweisen.
Stéphane Chazelas
@StephaneChazelas: Fair genug. Ich habe nur aus der "Verwendung von Tastenkombinationen" gefolgert, dass ngwdaniel eigentlich nichts gestartet hat, was init noch nicht hervorgebracht hat. Wenn ja, müssen Sie diese nicht schließen (und wie Sie in Ihrer Antwort darauf hinweisen, ist dies sowieso nicht so einfach).
Goldlöckchen
Sie wollten die Anzahl der verfügbaren tty reduzieren?
Daisy
@goldilocks danke, das ist die Antwort, nach der ich gesucht habe. Ich bin ein dummer Anfänger und ich dachte, ich wäre es, der die ttys mit <Alt> + <F2> usw. eröffnet hat
ngwdaniel

Antworten:

10

TTY "schließen"

  • Wenn dies systemdnicht der initFall ist, hilft Ihnen dies nicht weiter .
  • sysvinitwird von Arch Linux nicht mehr unterstützt

systemd‚s systemctlwird verwendet , um so zu steuern , service unitsauf dem System. Um mehr darüber zu erfahren, verweisen wir auf man systemd.unit. Das Stoppen des gettyDienstes auf dem gewünschten ttyführt die betreffende Aufgabe aus. Im Folgenden finden Sie den Befehl zum Ausführen dieser Aktion. Außerdem habe ich einen Test hinzugefügt, mit dem Sie die Ergebnisse bestätigen können.

# systemctl stop [email protected]

  • Ersetzen Sie Xdurch die ttyNummer, die Sie schließen möchten
  • Durch diesen Vorgang werden auch alle Anwendungen / Clients geschlossen, die von dem angegebenen aus ausgeführt wurden tty.

Prüfung

  1. Wechseln Sie zu tty4und geben Sie Ihr usernameund ein password.
    • <CTRL>+<ALT>+[F4]
  2. Starten Sie Ihren bevorzugten Texteditor
    • vim foo.bar
  3. Wechseln Sie zurück zu tty1oder zu dem, in dem ttySie ursprünglich waren
    • <CTRL>+<ALT>+[F1]
  4. Öffnen Sie ein Terminalfenster und prüfen Sie, ob vimes ausgeführt wird
    • pgrep vim
      • pgrepGibt die Signalprozessnummer der angegebenen Anwendung zurück. Bei mehreren Instanzen derselben Anwendung werden mehrere Nummern zurückgegeben
        • (Wenn vier Terminalfenster geöffnet sind, pgrepwerden vier Prozessnummern ausgegeben.)
  5. Als root halt den gettyDienst fürtty4
  6. Überprüfen Sie erneut, ob viman der Stelle, tty4an der es geöffnet und bearbeitet wurde, noch etwas aktiv istfoo.bar
    • pgrep vim (Wenn es keine Ausgabe / weniger Ausgabe als in Schritt 4 gibt, gibt es keinen Prozess)
  7. Überprüfen Sie den Status der [email protected]fürtty4
    • systemctl status [email protected] | grep -i "Active"
      • Durch Weiterleiten der Ausgabe an grep -i "Active"wird nur die erforderliche Zeile ausgegeben, die Sie beachten müssen, um zu bestätigen, dass die gettyOption deaktiviert wurde
        • Active: inactive (dead)
cinelli
quelle
Sie können den whoBefehl verwenden, um die aktuell angemeldeten Benutzer und die Tty-Nummern aufzulisten.
Djolo
5

Ich glaube, es ist der deallocvtBefehl, den Sie suchen.

Stellen Sie zunächst sicher, dass das VT nicht mehr verwendet wird. Wenn auf dieser Konsole beispielsweise gettymit dem erneuten Aufrufen von begonnen wird init, macht es keinen Sinn, die Zuordnung aufzuheben , und Sie müssen dieses tty aus dem inittabersten entfernen und angeben, dass die Konfiguration neu geladen werden soll init. Wenn eine Shell vorhanden ist, beenden Sie die Shell usw.

Stéphane Chazelas
quelle