Comment supprimer toutes les sessions screen sous Linux ?

Testé et approuvé, en une ligne de commande vous serez capable de supprimer toutes les sessions screen sous Linux. Ceci se fera par l’intermédiaire d’une boucle for en shell. A l’intérieur de cette boucle for, vous listerez toutes les sessions avec la commande :

screen -ls

Une fois toutes les sessions listées vous récupérerez le mot-clé « Detached ». En effet, nous ne supprimerons que les sessions « détachées », ce sera en effet plus sympa pour les utilisateurs déjà connectés en mode screen.

Enfin, grâce à la commande awk on isolera uniquement la partie contenant l’identifiant de session.

Tout d’abord, vous trouverez ci-dessous un exemple :

server1:~ # screen -ls
 There are screens on:
 36130.pts-0.server1 (Detached)
 59510.pts-18.server1 (Detached)
 5700.pts-3.server1 (Detached)
 26285.pts-5.server1 (Detached)
 16726.pts-22.server1 (Detached)
 49048.pts-12.server1 (Detached)
 59782.pts-4.server1 (Detached)
 26695.pts-10.server1 (Detached)
 47762.pts-18.server1 (Detached)
 15672.pts-23.server1 (Detached)
 42181.pts-18.server1 (Detached)
 51100.pts-6.server1 (Detached)
 54468.pts-16.server1 (Detached)
 24588.pts-3.server1 (Detached)
 33985.pts-1.server1 (Detached)
 15 Sockets in /var/run/screens/S-root.

Et voilà la fameuse commande :

for i in `screen -ls | grep Detached | awk '{ print $1 }' `; do screen -S $i -X quit ; done

Source :

Stackoverflow




Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *