J'ai accidentellement créé plus de 1000 écrans. Comment puis-je tous les tuer avec une seule commande? (Ou quelques-uns)
linux
bash
gnu-screen
kill
BrainStone
la source
la source
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;
Réponses:
Vous pouvez utiliser :
Ou
Sous OSX, le processus s'appelle SCREEN en majuscules. Alors, utilisez:
Ou
la source
Top
Si les écrans sont morts, utilisez:
la source
la source
J'ai récemment commencé à me familiariser avec awk. Je l'ai posté depuis que c'est assez facile à comprendre.
screen -ls | grep '(Detached)' | awk 'sys {screen -S $1 -X quit}'
Où
screen -ls
répertorie tous les écrans actuels.grep 'pattern'
filtre toutes les lignes correspondantes. Nous pouvons alors obtenir une poignée pour tous les écrans détachés et avecawk sys {command}
nous pouvons copier et coller ensemble une commande et l'exécuter avecsys
,$1
fait référence au premier argument repris par awk. Enfin, nous exécutons la commande quit avecscreen -X quit
.la source
screen -ls | grep '(Detached)' | awk '{print $1}' | xargs -I % -t screen -X -S % quit
a fonctionné mieux pour moi.Je suis un peu perplexe sur la façon dont vous avez réussi à créer 1000 "écrans". Voulez-vous dire peut-être 1 000 fenêtres d'écran (1 000 fenêtres de terminaux différentes au sein d'une même session d'écran)?
Si vous vouliez parler de 1000 fenêtres dans une seule session d'écran, une solution plus élégante consisterait à quitter l'écran à l'aide de la commande
C-a \
(ctrl-a suivi de \).la source
screen -m sleep 100000
. Ceci est arrivé et je ne l'ai pas remarqué avant que cela ait déjà créé plus de 1000 sessions d'écran.La commande suivante mettra fin à tous les écrans inactifs:
la source
la source