
Eu acidentalmente criei mais de 1000 telas. Como faço para matar todos eles com um comando? (Ou alguns)
Responder1
Você pode usar :
pkill screen
Ou
killall screen
No OSX o processo é denominado SCREEN em letras maiúsculas. Então, use:
pkill SCREEN
Ou
killall SCREEN
Responder2
Se as telas estiverem mortas, use:
screen -wipe
Responder3
Recentemente, comecei a me familiarizar com o awk. Montei isso e serviu ao seu propósito. Eu postei porque é muito fácil de entender.
screen -ls | grep '(Detached)' | awk 'sys {screen -S $1 -X quit}'
Onde screen -ls
lista todas as telas atuais.
grep 'pattern'
filtra todas as linhas correspondentes. Podemos então obter um identificador para todas as telas desanexadas e com isso awk sys {command}
podemos copiar e colar um comando e executá-lo com sys
, $1
refere-se ao primeiro argumento obtido pelo awk. Finalmente executamos o comando quit com screen -X quit
.
Responder4
for scr in $(screen -ls | awk '{print $1}'); do screen -S $scr -X kill; done