Come chiudere un tty


14

Ho aperto diverse tty e non conosco la combinazione di tasti da usare per chiudere una tty. Sto usando Arch Linux.


2
Non li hai aperti, sono aperti. Hai appena cambiato VT. Se si desidera disconnettersi da uno di essi, utilizzare exit. Se non hai effettuato l'accesso, non preoccuparti. Prima era lì, solo che non lo stavi guardando.
Riccioli d'oro,

1
@goldilocks, VTs possono essere allocati e chiusi dinamicamente. Il primo è sempre allocato quando la console è su di esso inite X generalmente alloca i successivi, ma è possibile allocare di più. L'apertura del /dev/ttyxdispositivo è sufficiente per allocarlo.
Stéphane Chazelas,

@StephaneChazelas: Abbastanza giusto. Stavo solo deducendo dall'uso delle combinazioni di tasti che ngwdaniel in realtà non aveva avviato nulla che init non avesse già generato. In tal caso, non è necessario chiuderli (e come fai notare nella tua risposta, non è comunque così facile).
Riccioli d'oro

Volevi dire ridurre il numero di tty disponibili?
margherita

@goldilocks grazie, questa è la risposta che stavo cercando. Sono un principiante sciocco e ho pensato che sono stato io ad aprire i tty da <Alt> + <F2> ecc.
ngwdaniel,

Risposte:


10

"Chiusura" di un TTY

  • Se systemdnon initviene utilizzato, questo non ti aiuterà.
  • sysvinitnon è più supportato da Arch Linux

systemd's systemctlè usato per controllare tutto service unitsil sistema. Per saperne di più su di esso riferimento man systemd.unit. L'arresto del gettyservizio sul desiderato ttyeseguirà l'attività in questione. Di seguito è riportato il comando per eseguire questa azione e ho anche aggiunto un test in modo da poter confermare i risultati.

# systemctl stop getty@ttyX.service

  • Sostituisci Xcon il ttynumero che desideri chiudere
    • Se [F4] è stato utilizzato per passare a, ttyil servizio viene denominato getty@tty4.service.
  • Questa procedura chiuderà anche tutte le applicazioni / i client eseguiti dal specificato tty.

Test

  1. Passa a tty4e inserisci il tuo usernamee password.
    • <CTRL>+<ALT>+[F4]
  2. Avvia il tuo editor di testo preferito
    • vim foo.bar
  3. Torna indietro tty1o in qualunque altro ttyposto
    • <CTRL>+<ALT>+[F1]
  4. Aprire una finestra del terminale e verificare se vimè in esecuzione
    • pgrep vim
      • pgreprestituisce il numero di processo del segnale dell'applicazione specificata. Verranno restituiti più numeri se sono presenti più istanze della stessa applicazione
        • (se ci sono quattro finestre del terminale aperte, pgrepverranno emessi quattro numeri di processo)
  5. Come root fermare il gettyservizio pertty4
    • # systemctl stop getty@tty4.service
  6. Ricontrolla se vimè ancora attivo nel tty4punto in cui è stato aperto e modificatofoo.bar
    • pgrep vim (se non c'è output / meno output rispetto al passaggio 4, allora non c'è processo)
  7. Ricontrolla lo stato di getty@.servicepertty4
    • systemctl status getty@tty4.service | grep -i "Active"
      • Se si grep -i "Active"esegue il piping dell'output, verrà emessa solo la riga richiesta che sarà necessario osservare per confermare che gettyè stata disabilitata
        • Active: inactive (dead)

puoi usare il whocomando per elencare gli utenti attualmente registrati e i numeri tty.
Djolo,

5

Credo sia il deallocvtcomando che stai cercando.

Innanzitutto assicurarsi che il VT non sia più utilizzato. Per esempio, se c'è un gettyiniziato con respawning da initsu quella console, non ha senso cercare di rilasciare esso, avresti bisogno di rimuovere quel tty dalla inittabprima e dire initdi ricaricare la sua configurazione. Se c'è una shell, esci dalla shell, ecc.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.