it-swarm.dev

Come fermare un processo di screen in linux?

Sto eseguendo uno script su un server remoto. Ho eseguito lo script in screen, tuttavia ho bisogno di fermarlo prima che venga completato poiché è necessario aggiornare lo script. Posso facilmente staccare da screen, tuttavia, c'è un modo per uccidere un processo screen?

38
David

CTRL + a e poi 'k' uccideranno una sessione di schermate.

62
Nik

Ci sono un paio di modi per 'schermare' per uccidere una specifica sessione di schermo dalla riga di comando (non in modo interattivo).

1) invia un comando 'quit':

screen -X -S "sessionname" quit

2) inviare un Ctrl-C a una sessione dello schermo che esegue uno script:

screen -X -S "sessionname" stuff "^C"

In entrambi i casi, è necessario utilizzare 'screen -ls' per trovare il nome della sessione della sessione dello schermo che si desidera uccidere ... se è in esecuzione una sola sessione dello schermo, non è necessario specificare l'opzione -S " sessionname "parametro.

30
troyfolger

L'ho usato per uscire da centinaia di sessioni di schermo errate create da un comando buggy:

for s in $(screen -ls|grep -o -P "1\d+.tty"); do screen -X -S $s quit; done;

dove: il grep -o -P "1\d+.tty" è il comando per ottenere i nomi di sessione con nome regex "1\d+.tty" di tipo Perl che cattura tutte le sessioni iniziano con il numero 1, ha alcuni altri numeri (\d) e termina con .tty 

Avviso : Dovresti testare con questo comando prima di vedere che ottieni l'elenco esatto delle sessioni che desideri prima di applicare il comando precedente. Questo per evitare di abbandonare le sessioni indesiderate:

for s in $(screen -ls|grep -o -P "1\d+.tty"); do echo $s; done;

Ho sempre a questo echo test ogni volta che l'elenco nel ciclo for non è chiaro, ad esempio, quello generato dal sottocomando nell'espansione $()

2
biocyberman

le risposte precedenti non funzionavano per me su un terminale winputty e una connessione al server ssh di Amazon .. ma questo funziona:

screen -S yourscreentitlehere -X stuff $'\003'

riferimenti:

1
mgear