web-dev-qa-db-fra.com

Tuer l'écran attaché sous Linux

J'ai créé un écran "myscreen" sous Linux et il a cessé de répondre brusquement. J'ai fermé le terminal et essayé de le rouvrir. "screen -ls" indique que l'écran est attaché. J'ai essayé les commandes suivantes mais rien ne répond.

screen -r myscreen
screen -D myscreen
screen -D -RR myscreen
screen -X -S myscreen quit

Toute aide pour se rattacher à l'écran ou pour tuer l'écran est très appréciée.

39
Slowcoder
screen -X -S SCREENID kill

alternativement, vous pouvez utiliser la commande suivante

screen -S SCREENNAME -p 0 -X quit

Vous pouvez afficher la liste des sessions d'écran en exécutant screen -ls 

Créer un écran depuis le terminal:

screen -S <screen_name>

Pour voir la liste des écrans:

<screen -ls> or <screen -list>

Pour aller à un écran particulier:

<screen -x screen_name>

<screen -r screen_name>

Écran intérieur


Pour terminer l'écran:

give ctrl+d screen will get terminated

Pour détacher l'écran:

 give <ctrl+ad>or <screen -d >screen will get detached

Pour rattacher l'écran:

screen -x <screen_name> or screen -r <screen_name>

Pour tuer un écran du terminal:

<screen -X -S screen_name quit> 

ou 

<screen -X -S screen_name kill>

Vous pouvez utiliser screen_name ou process_id pour exécuter des commandes.

8
naveen nani

Cela a très bien fonctionné pour moi. Obtenir l'identifiant d'écran via:

screen -r

ou

screen -ls

puis tuez l'écran: kill -9 <screenID>it devient maintenant un écran mort, puis supprimez-le avec: screen -wipe

6
TheWiz

Vous pouvez créer une fonction pour tuer toutes les sessions existantes. jetez un oeil à Tuez toutes les sessions d'écran non-enregistrées

pour lister toutes les sessions actives, utilisez screen -r 

dans la liste, sélectionnez avec la souris la session qui vous intéresse et collez-la. comme ça

écran -r 

1
andreskwan

Supposons que votre identifiant d'écran ait un motif. Ensuite, vous pouvez utiliser le code suivant pour supprimer tous les écrans connectés à la fois. 

result=$(screen -ls | grep 'pattern_of_screen_id' -o)
for i in $result; 
do      
    `screen -X -S $i quit`;
done
1
Md. Kauser Ahmmed

Vous pouvez trouver l'ID de processus de l'écran en cours attaché . Je l'ai trouvé identique à l'ID de session que vous pouvez obtenir par commande:
screen -ls
Et vous pouvez utiliser la commande suivante pour tuer ce processus:
kill [sessionId] ou
Sudo kill [sessionId]

0
Siddhant

d'habitude, je ne nomme pas mes occurrences d'écran, donc cela peut ne pas être utile, mais avez-vous essayé screen -r sans la partie "myscreen"? généralement pour moi, screen -r affichera les PID de chaque écran, puis je pourrai me reconnecter avec screen -d -r <PID>

0
Hutch