Aprendi em algum lugar que uma tela separada pode ser eliminada por
screen -X -S [session # you want to kill] kill
onde [sessão # você quer matar] pode ser obtida
screen -ls
Mas isso não funciona. Algo errado? Qual é o caminho correto?
linux
kill
gnu-screen
Tim
fonte
fonte
screen -S sessionname -p 0 -X quit
Respostas:
"matar" mata apenas uma janela da tela. Para "matar" a sessão completa, use
quit
.Exemplo
Para sessões mortas, use: $ screen -wipe
fonte
exit
funciona, mas precisa ser digitado em cada tela que foi aberta.quit
nem funcionascreen -X quit
em nenhum termina terminais todas as sessões ativasVocê pode matar uma sessão desanexada que não está respondendo dentro da sessão da tela, fazendo o seguinte.
Digite
screen -list
para identificar a sessão de tela desanexada.Nota:
20751.Melvin_Peter_V42
é o seu ID de sessão.Apegue-se à sessão de tela desanexada
Depois de conectado à sessão, pressione Ctrl+ Ae digite
:quit
fonte
quit
e:quit
levar acommand not found
no meu servidor Linux remoto (talvez diferenças entre versões do sistema operacional ou da tela são os culpados)exit
também funcionaTelas de lista:
Resultado:
Matar sessão de tela:
fonte
É mais fácil matar uma sessão, quando algum nome significativo é dado:
fonte
screen -S
e nãoscreen -r
?Você pode simplesmente ir para o local em que a sessão de tela está alojada e executar:
o que resulta em
E basta removê-lo:
O
uscreens
diretório não terá mais o26727.pts-0.devxxx
arquivo. Agora, certifique-se de digitar isto:screen -ls
e você deve obter:
fonte
ps aux | grep screen
encontrei o pid e emiti umkill
para removê-lo. Dependendo do que você executou na tela, também pode haver arquivos temporários e bloqueios para limpar.Deve limpar todas as sessões de tela morta .
fonte
adicione isso ao seu
~/.bashrc
:Em seguida, use
cleanscreen
para limpar todas as sessões da tela.fonte
screen -ls | grep Detached | cut -d. -f1 | awk '{print $1}' | xargs kill
screen -ls | tail +2 | head -2 | awk '{print $1}'| xargs -I{} screen -S {} -X quit
Para mim um simples
trabalho. Isso é de dentro da sessão da tela.
fonte
:quit
Para eliminar todas as sessões de tela desanexadas, inclua esta função no seu .bash_profile:
para executá-lo, chame
killd
fonte
fonte
Como alternativa, enquanto estiver na sessão da tela, basta digitar exit
Isso matará a sessão de shell iniciada pela tela, que efetivamente encerra a sessão de tela em que você está.
Não há necessidade de se preocupar com o ID da sessão na tela, etc.
fonte