Comment fermer un tty

14

J'ai ouvert plusieurs ttys et je ne connais pas la combinaison de touches à utiliser pour fermer un tty. J'utilise Arch Linux.

ngwdaniel
la source
2
Vous ne les avez pas ouverts, ils sont ouverts. Vous venez de changer VT. Si vous souhaitez vous déconnecter de l'un d'eux, utilisez exit. Si vous n'êtes pas connecté, ne vous inquiétez pas. Il était là avant, juste que vous ne le regardiez pas.
goldilocks
1
@goldilocks, les VT peuvent être alloués et fermés dynamiquement. La première est toujours allouée lorsque la console est dessus, initet X alloue généralement les suivantes, mais vous pouvez en allouer plus. Il /dev/ttyxsuffit d' ouvrir l' appareil pour l'allouer.
Stéphane Chazelas
@StephaneChazelas: Assez juste. J'étais en train de déduire de "l'utilisation de combinaisons de touches" que ngwdaniel n'avait en fait pas démarré quelque chose que init n'avait pas déjà engendré. Si c'est le cas, il n'est pas nécessaire de les fermer (et comme vous le signalez dans votre réponse, ce n'est pas si facile de toute façon).
goldilocks
Vous vouliez dire réduire le nombre de tty disponibles?
marguerite
@goldilocks merci, c'est la réponse que je cherchais. Je suis un débutant idiot et je pensais que c'était moi qui ai ouvert les ttys par <Alt> + <F2> etc
ngwdaniel

Réponses:

10

"Fermer" un ATS

  • Si ce systemdn'est pas le cas, initcela ne vous aidera pas.
  • sysvinitest plus pris en charge par Arch Linux

systemd« s systemctlest utilisé pour contrôler tous les service unitssur le système. Pour en savoir plus sur cette référence man systemd.unit. L'arrêt du gettyservice sur le désiré ttyeffectuera la tâche en question. Vous trouverez ci-dessous la commande pour effectuer cette action et j'ai également ajouté un test afin que vous puissiez confirmer les résultats.

# systemctl stop [email protected]

  • Remplacez Xpar le ttynuméro que vous souhaitez fermer
    • Si [F4] a été utilisé pour basculer vers le, ttyle service est nommé [email protected].
  • Cette procédure fermera également toutes les applications / clients exécutés à partir du spécifié tty.

Tester

  1. Basculez vers tty4et entrez votre usernameet password.
    • <CTRL>+<ALT>+[F4]
  2. Lancez votre éditeur de texte préféré
    • vim foo.bar
  3. Revenez à tty1ou dans lequel ttyvous étiez à l'origine
    • <CTRL>+<ALT>+[F1]
  4. Ouvrez une fenêtre de terminal et vérifiez si elle vimest en cours d'exécution
    • pgrep vim
      • pgreprenvoie le numéro de traitement du signal de l'application spécifiée. Plusieurs numéros seront retournés s'il y a plusieurs instances de la même application
        • (s'il y a quatre fenêtres de terminal ouvertes pgrep, quatre numéros de processus seront émis)
  5. En tant qu'utilisateur root, arrêtez le gettyservice pourtty4
  6. Vérifiez à nouveau si vimest toujours actif à l' tty4endroit où il a été ouvert et modifiéfoo.bar
    • pgrep vim (s'il n'y a pas de sortie / moins de sortie qu'à l'étape 4, alors il n'y a pas de processus)
  7. Vérifiez le statut du [email protected]pourtty4
    • systemctl status [email protected] | grep -i "Active"
      • Le piping de la sortie vers grep -i "Active"ne produira que la ligne requise que vous devrez observer pour confirmer qu'elle gettya été désactivée
        • Active: inactive (dead)
cinelli
la source
u peut utiliser la whocommande pour répertorier les utilisateurs actuellement connectés et les numéros tty.
Djolo
5

Je crois que c'est la deallocvtcommande que vous recherchez.

Assurez-vous d'abord que le VT n'est plus utilisé. Par exemple, s'il y a un gettydébut de réapparition par initsur cette console, il est inutile d'essayer de le désallouer, vous devrez supprimer ce tty du inittabpremier et dire initde recharger sa configuration. S'il y a un shell, quittez le shell, etc.

Stéphane Chazelas
la source