Lorsque screen -ls
, je vois ce qui suit. Comment puis-je tuer toutes les sessions détachées?
Il y a des écrans sur:
84918.ttys002.ros-mbp (Detached) 84944.ttys008.ros-mbp (Detached) 84970.ttys013.ros-mbp (Attached) 84998.ttys002.ros-mbp (Detached) 85024.ttys002.ros-mbp (Detached)
5 sockets dans /var/folders/86/062qtcyx2rxbnmn8mtpkyghs0r0r_z/T/.screen.
screen -ls | grep pts | cut -d. -f1 | awk '{print $1}' | xargs kill
Ne tuer que les sessions d’écran détachées (credit @schatten):
screen -ls | grep Detached | cut -d. -f1 | awk '{print $1}' | xargs kill
Voici une solution qui combine toutes les réponses: Ajoutez ceci à votre .bash_profile
.bashrc
ou .bash_profile
:
killscreens () { screen -ls | grep Detached | cut -d. -f1 | awk '{print $1}' | xargs kill }
source .bashrc
pour rendre les killscreens
disponibles Merci à @Rose Perrone, @Milind Shah et @schatten
Inclure cette fonction dans votre fichier .bash_profile:
killd () { for session in $(screen -ls | grep -o '[0-9]\{4\}') do screen -S "${session}" -X quit; done }
Pour l’exécuter, appelez killd
. Cela va tuer toutes les sessions d’écran, détachées ou non.
Si les écrans sont morts, utilisez:
screen -wipe
'[0-9]\{3,\}'
en cas de
There is a screen on: 20505.blabla (03/05/2014 22:16:25) (Detached) 1 Socket in /var/run/screen/S-blabla.
correspondra à la fois à 20505 et à 2014, où le retrait de 2014 renverra “Aucune session d’écran trouvée”.
[0-9]\{3,\}\.\S*
pourrait fonctionner.
J’ai toujours rencontré le pattern 20505. name , où name est soit un nom d’hôte, soit un nom de session si l’écran a été lancé avec l’option -S. Fonctionne sur OS X et Debian, peut ne pas être universel.