Como fechar um tty


14

Abri vários ttys e não sei a combinação de teclas a ser usada para fechar um ttys. Estou usando o Arch Linux.


2
Você não os abriu, eles estão abertos. Você acabou de mudar o VT. Se você deseja sair de um deles, use exit. Se você não está logado, não se preocupe. Já estava lá antes, mas você não estava olhando.
goldilocks

1
@goldilocks, os VTs podem ser alocados e fechados dinamicamente. O primeiro sempre é alocado quando o console está nele, inite X geralmente aloca os próximos, mas você pode alocar mais. Abrir o /dev/ttyxdispositivo é suficiente para alocá-lo.
Stéphane Chazelas

@StephaneChazelas: Justo o suficiente. Eu estava apenas deduzindo do "uso de combinações de teclas" que o ngwdaniel realmente não iniciou nada que o init ainda não gerou. Nesse caso, não há necessidade de fechá-las (e, como você aponta na sua resposta, isso não é tão fácil assim).
22813 goldilocks

Você queria reduzir a contagem de tty disponível?
daisy

@ goldilocks obrigado, esta é a resposta que eu estava procurando. Eu sou um iniciante bobo e eu pensei que era eu quem abriu as ttys por <Alt> + <F2> etc
ngwdaniel

Respostas:


10

"Fechando" um TTY

  • Se systemdnão estiver initsendo usado, isso não ajudará.
  • sysvinitnão é mais suportado pelo Arch Linux

systemd's systemctlé usado para controlar todo o service unitsno sistema. Para saber mais sobre a referência man systemd.unit. Parar o gettyserviço no desejado ttyexecutará a tarefa em questão. Abaixo está o comando para executar esta ação e também adicionei um teste para que você possa confirmar os resultados.

# systemctl stop getty@ttyX.service

  • Substitua Xpelo ttynúmero que você deseja fechar
    • Se [F4] foi usado para alternar para o tty, o serviço será nomeado getty@tty4.service.
  • Este procedimento também fechará todos os aplicativos / clientes executados a partir do especificado tty.

Teste

  1. Alterne para tty4e digite seu usernamee password.
    • <CTRL>+<ALT>+[F4]
  2. Inicie seu editor de texto favorito
    • vim foo.bar
  3. Volte para tty1o local em ttyque estava originalmente
    • <CTRL>+<ALT>+[F1]
  4. Abra uma janela do terminal e verifique se vimestá em execução
    • pgrep vim
      • pgrepretorna o número do processo de sinal do aplicativo especificado. Vários números serão retornados se houver várias instâncias do mesmo aplicativo
        • (se houver quatro janelas de terminal abertas, pgrepproduzirá quatro números de processo)
  5. Como root, pare o gettyserviço paratty4
    • # systemctl stop getty@tty4.service
  6. Verifique novamente se vimainda está ativo no tty4local em que foi aberto e editandofoo.bar
    • pgrep vim (se não houver saída / menos saída que na etapa 4, não haverá processo)
  7. Verifique o status do getty@.serviceparatty4
    • systemctl status getty@tty4.service | grep -i "Active"
      • A canalização da saída grep -i "Active"produzirá apenas a linha necessária que você precisará observar para confirmar gettyque foi desativada
        • Active: inactive (dead)

Você pode usar o whocomando para listar usuários e números tty atualmente registrados.
Djolo 15/02/19

5

Eu acredito que é o deallocvtcomando que você está procurando.

Primeiro, verifique se o VT não é mais usado. Por exemplo, se há um gettycomeçou com respawning por initsobre o console, não há nenhum ponto tentando desalocar-lo, você precisa remover essa tty do inittabprimeiro e dizer initpara recarregar sua configuração. Se houver um shell, saia do shell etc.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.