2013-02-11 13 views
30

Ho creato uno schermo "myscreen" in linux e ha smesso di rispondere bruscamente. Ho chiuso il terminale e ho provato a riaprirlo. "screen -ls" mostra che lo schermo è in allegato. Ho provato i seguenti comandi ma nulla risponde.Kill Attached Screen in Linux

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

Qualsiasi aiuto per riattaccare allo schermo o per uccidere lo schermo è molto apprezzato.

+0

Non sai quale schermata è, ma se si tratta di un processo, quindi kill -9? –

+0

Non sono sicuro che lo schermo sia un processo. Ma "kill -9" ucciderà l'intero processo. Ma voglio uccidere il particolare schermo e lasciare gli altri schermi senza interruzioni. – Slowcoder

+1

Hai provato 'screen -dr myscreen'? – Walfie

risposta

49
screen -X -S SCREENID kill 

In alternativa, è possibile utilizzare il seguente comando

screen -S SCREENNAME -p 0 -X quit 

È possibile visualizzare l'elenco delle sessioni di schermo da in esecuzione screen -ls

+0

Ho notato che la prima sequenza di comandi uccide solo l'ultima finestra se sono aperte più finestre mentre la seconda uccide l'intero schermo indipendentemente dal numero di finestre. –

+0

Esiste la possibilità di cancellare tutti i processi e pulire lo schermo? –

+2

Sì, certo e utilizzare "schermo pkill" o "killall screen" –

0

di solito non nomino le istanze dello schermo, quindi potrebbe non essere utile, ma hai provato screen -r senza la parte "myscreen"? di solito per me, screen -r mostrerà i PID di ogni schermata allora posso ricollegare con screen -d -r <PID>

+0

Sì, quello era il primo comando che ho provato. ma non ha risposto. Ho provato ad aprire come utente root ma lo schermo non è stato nemmeno rilevato per l'account utente root. – Slowcoder

0

È possibile creare una funzione per chiudere tutte le sessioni esistenti. dare un'occhiata a Kill all detached screen sessions

per elencare tutte le sessioni attive utilizzano screen -r

quando elencato, selezionare con il mouse la sessione che ti interessa e incollarlo. Ti piace questa schermata

-r

4

Creare schermo dal Terminal:

screen -S <screen_name> 

per vedere la lista di schermi:

<screen -ls> or <screen -list> 

Per accedere al particolare schermo:

<screen -x screen_name> 

<screen -r screen_name> 

interno scr een


di interrompere schermo:

give ctrl+d screen will get terminated 

Per staccare schermo:

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

per riattaccare schermo:

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

per uccidere uno schermo da terminale:

<screen -X -S screen_name quit> 

o

<screen -X -S screen_name kill> 

È possibile utilizzare SCREEN_NAME o process_id per eseguire i comandi.

+0

Questo è solo un elenco di comandi sullo schermo, non una risposta a questa domanda specifica. –

+0

Questo elenco di comandi mi ha aiutato a risolvere il mio problema, grazie per aver postato –

-1

Per risultato ritrovamento: Click Here

schermo è un window manager a schermo intero che multiplexing un terminale fisico tra diversi processi, tipicamente shell interattive. C'è un buffer di cronologia scrollback per ogni terminale virtuale e un meccanismo di copia e incolla che consente all'utente di spostare le aree di testo tra le finestre.

+0

Questo non è molto utile: è solo una parte della pagina man e un cheat sheet che l'OP ha sicuramente letto. – matiasg

5

Questo ha funzionato molto bene per me. Ottenere l'id schermo tramite:

screen -r 

o

screen -ls 

poi uccidere lo schermo: kill -9 <screenID> ora diventa uno schermo morto, quindi pulire fuori con: screen -wipe

1

Supponiamo che il vostro schermo l'id ha uno schema. Quindi puoi usare il seguente codice per uccidere tutte le schermate allegate contemporaneamente.

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