Jak zamknąć tty


14

Otworzyłem kilka tty i nie znam kombinacji klawiszy, których można użyć do zamknięcia tty. Używam Arch Linux.


2
Nie otworzyłeś ich, są otwarte. Właśnie zmieniłeś VT. Jeśli chcesz się wylogować z jednego z nich, użyj exit. Jeśli nie jesteś zalogowany, nie martw się. To było tam wcześniej, tylko nie patrzyłeś na to.
złotowłosa

1
@Goldilocks, VT mogą być dynamicznie przydzielane i zamykane. Pierwszy jest zawsze przydzielany, gdy konsola jest na nim, inita X ogólnie przydziela kolejne, ale możesz przydzielić więcej. /dev/ttyxWystarczy otworzyć urządzenie, aby je przydzielić.
Stéphane Chazelas,

@StephaneChazelas: Wystarczająco sprawiedliwe. Właśnie wywnioskowałem z „używania kombinacji klawiszy”, że ngwdaniel faktycznie nie uruchomił niczego, czego init jeszcze się nie pojawił. Jeśli tak, nie trzeba ich zamykać (a jak zauważyłeś w swojej odpowiedzi, i tak nie jest to tak łatwe).
goldilocks

Miałeś na myśli zmniejszenie liczby dostępnych tty?
stokrotka

@Goldilocks dziękuję, to była odpowiedź, której szukałem. Jestem głupim początkującym i myślałem, że to ja otworzyłem ttys przez <Alt> + <F2> itp.
ngwdaniel

Odpowiedzi:


10

„Zamykanie” TTY

  • Jeśli systemdnie initjest używany, to ci nie pomoże.
  • sysvinitnie jest już obsługiwany przez Arch Linux

systemd„s systemctlsłuży do sterowania wszystkim service unitsw systemie. Aby dowiedzieć się więcej na ten temat, zapoznaj się man systemd.unit. Zatrzymanie gettyusługi na żądanym ttyspowoduje wykonanie danego zadania. Poniżej znajduje się polecenie wykonania tej akcji, a także dodałem test, abyś mógł potwierdzić wyniki.

# systemctl stop getty@ttyX.service

  • Wymienić Xz ttynumerem Państwo chcieliby, aby zamknąć
    • Jeśli do przełączenia użyto [F4],tty to nazwa usługi getty@tty4.service.
  • Ta procedura spowoduje także zamknięcie wszystkich aplikacji / klientów uruchomionych z określonego tty.

Test

  1. Przełącz się na tty4i wprowadź swoje usernamei password.
    • <CTRL>+<ALT>+[F4]
  2. Uruchom swój ulubiony edytor tekstu
    • vim foo.bar
  3. Przełącz się z powrotem na tty1cokolwiek tty, w którym pierwotnie byłeś
    • <CTRL>+<ALT>+[F1]
  4. Otwórz okno terminala i sprawdź, czy vimdziała
    • pgrep vim
      • pgrepzwraca numer procesu sygnału dla określonej aplikacji. Wiele numerów zostanie zwróconych, jeśli istnieje wiele wystąpień tej samej aplikacji
        • (jeśli są otwarte cztery okna terminali, wówczas pgrepwypisane zostaną cztery numery procesów)
  5. Jako root zatrzymać na gettyobsługętty4
    • # systemctl stop getty@tty4.service
  6. Sprawdź, czy vimnadal jest aktywne w tty4miejscu, w którym zostało otwarte i edytowanefoo.bar
    • pgrep vim (jeśli nie ma wyjścia / mniej wyjścia niż w kroku 4, to nie ma procesu)
  7. Dokładnie sprawdź status getty@.servicefortty4
    • systemctl status getty@tty4.service | grep -i "Active"
      • Pipingowanie wyjścia grep -i "Active"spowoduje wyświetlenie tylko wymaganej linii, którą musisz obserwować, aby potwierdzić, że gettyzostała wyłączona
        • Active: inactive (dead)

Możesz użyć whopolecenia, aby wyświetlić listę aktualnie zalogowanych użytkowników i numerów tty.
Djolo,

5

Wierzę, że to deallocvtpolecenie, którego szukasz.

Najpierw upewnij się, że VT nie jest już używany. Na przykład, jeśli istnieje gettyrozpoczął respawning przez initna tej konsoli, nie ma sensu próbuje go cofnąć przydział, trzeba by usunąć ten tty z inittabpierwszym i powiedzieć, initaby odświeżyć swój config. Jeśli jest skorupa, wyjdź z powłoki itp.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.