Accidentalmente creé más de 1000 pantallas. ¿Cómo los mato a todos con un solo comando? (O unos pocos)
linux
bash
gnu-screen
kill
BrainStone
fuente
fuente
screen -ls | grep Detached | cut -d. -f1 | awk '{print $1}' | xargs kill
screen -ls | grep "<name>" | cut -d. -f1 | tr --delete "\t" | xargs kill -9; screen -wipe; screen -ls;
Respuestas:
Puedes usar :
O
En OSX, el proceso se llama PANTALLA en mayúsculas. Entonces, use:
O
fuente
Top
Si las pantallas están muertas, use:
fuente
fuente
Recientemente comencé a familiarizarme con awk, armé esto y cumplió su propósito. Lo publiqué ya que es bastante fácil de entender.
screen -ls | grep '(Detached)' | awk 'sys {screen -S $1 -X quit}'
Donde
screen -ls
enumera todas las pantallas actuales.grep 'pattern'
filtra todas las filas coincidentes. Entonces podemos obtener un identificador para todas las pantallas separadas y con elawk sys {command}
que podemos copiar y pegar un comando y ejecutarlosys
, se$1
refiere al primer argumento recogido por awk. Finalmente ejecutamos el comando quit conscreen -X quit
.fuente
screen -ls | grep '(Detached)' | awk '{print $1}' | xargs -I % -t screen -X -S % quit
funcionó mejor para míEstoy un poco perplejo sobre cómo lograste crear 1000 "pantallas". ¿Quizás quiso decir 1000 ventanas de pantalla (1000 ventanas de terminal diferentes dentro de una sola sesión de pantalla)?
Si se refería a 1000 ventanas en una sola sesión de pantalla, una solución más elegante sería salir de la pantalla con el comando
C-a \
(ctrl-a seguido de \).fuente
screen -m sleep 100000
. Esto sucedió y no me di cuenta hasta que ya había creado más de 1000 sesiones de pantalla.El siguiente comando terminará todas las pantallas inactivas:
fuente
fuente