mata uma sessão de tela

41

Estou tentando matar uma sessão de tela. Eu notei muitas outras questões relacionadas, mas nenhuma dessas respostas está funcionando para mim. Eu estou tentando matar a seguinte sessão:

screen -ls
There is a screen on:
    23520.pts-6.porkypig    (09/30/2013 02:49:47 PM)    (Detached)
1 Socket in /var/run/screen/S-root.

screen -r 23520.pts-6.porkypig

Agora estou na sessão. Segundo a documentação:

link

Eu devo pressionar "control a" e depois "control \". Eu faço isso e nada acontece.

Outra solução dizia para pressionar Ctrl + ae digitar: quit. No entanto, mais uma vez, não faz nada. Na verdade, pressionando o controle + a, absolutamente nada acontece depois, exceto uma mensagem "Nenhuma outra janela"

    
por JohnMerlino 09.10.2013 / 23:35

7 respostas

53

Primeiro, você precisa se conectar novamente à sessão de tela de screen -r 23520 como você fez. Então pressione ctrl + a e então um K e pressione y quando ele perguntar se você realmente quer matar a sessão

    
por Jacob Minshall 10.10.2013 / 00:25
24

Você pode sair dessa tela sem se conectar a ela. Primeiro, encontre sua sessão e, em seguida, saia dela:

$ screen -ls
$ screen -X -S [session # you want to kill] quit
    
por shgnInc 05.07.2014 / 11:25
7

Isso matará todas as telas desanexadas:

screen -ls | grep detached | cut -d. -f1 | awk '{print }' | xargs kill

Isso matará todas as telas anexadas ou desanexadas

screen -ls | grep pts | cut -d. -f1 | awk '{print }' | xargs kill
    
por user324207 06.09.2014 / 12:12
5

Então, com todas essas sugestões oficiais, vamos apenas escolher algo mais fácil, mais eficaz e mais direto.

pkill screen

Quem quer entrar em uma tela desconhecida e desnecessária apenas para pressionar alguns comandos que a maioria mal consegue lembrar? Isso evita entrar em tudo e mata diretamente.

Além disso, se você tiver mais de um, isso os levará todos de uma só vez.

    
por Brian Thomas 19.03.2016 / 05:05
2

Encontrei esse problema ao atualizar a tela. O comando screen seria interrompido ao tentar reconectar a sessão, independentemente de quantos -D ou -R I foram adicionados ao comando. No entanto, screen -ls fornece convenientemente o pid da sessão, permitindo que você intervenha usando o seguinte:

10:42 user ~ $ screen -ls
There is a screen on:
        5730.my_screen     (Detached)
1 Socket in /tmp/screens/S-user.

10:42 user ~ $ sudo kill 5730

10:43 user ~ $ screen -ls
No Sockets found in /tmp/screens/S-user.

(Isso é semelhante à resposta de Brian Thomas, mas ele matará todas as sessões da tela em execução, o que pode não ser o que você deseja se você tiver várias telas abertas, mas apenas uma se comportando mal.)

    
por Mikkel 26.09.2016 / 16:47
1

Como você, eu queria matar minha sessão de tela e achei a documentação inútil. Convencido de que <<> deve ser um atalho de teclado, descobri que ctrl + a then \
trabalha

Eu então recebo o prompt: "Realmente saia e mate todas as suas janelas [y \ n]"

Não sei por que a documentação diz ctrl + a then ctrl + \ . Isso não faz nada por mim.

    
por lizp 15.02.2018 / 22:35
-1

Basta pressionar Ctrl + D e terminar.

    
por amin 27.11.2016 / 15:46

Tags