Il comando screen risulta utile quando dobbiamo lanciare script da terminale su una macchina remota che necessitano di una elaborazione particolarmente complessa o lunga. in quel caso possiamo utilizzare il comando “screen” e poi lasciare chiudere tranquillamente la nostra sessione terminale, sicuri di poter controllare in seguito l’esito del comando. In pratica e’ come aprire un terminale in un altro terminale, dargli un nome e collegarsi ad esso quando si vuole. Su OsX dovrebbe essere installato de default, se nella vostra distribuzione Linux non c’e’ lo si puo’ installare richiamando il proprio package manager di riferimento, ad es. con yum su Fedora/RedHat o apt-get su Debian/Ubuntu:

Fedora/redhat: sudo yum install screen
Debian/Ubuntu: sudo apt-get install screen


L’utilizzo del programma e’ molto semplice, si tratta di lanciare una nuova sessione con screen e dargli un nome:

screen -S nomesessione

Dopodiche’ lanciare la procedura o lo script che si desidera. A quel punto possiamo tranquillamente chiudere il terminale, il processo avviato non si interrompera’. In seguito sara’ possibile riprendere quella sessione richiamandola con il comando:

screen -r nomesessione

Se non siamo sicuri del nome dato alla sessione e’ possibile listare le sessioni attive con il comando

screen -ls

Il risultato potrebbe essere il seguente:

There is a screen on:

21572.pippo (Detached)

1 Socket in /var/folders/Jf/Jfv6jbWaHOGEgCwxYDFMTk+++TM/-Tmp-/.screen.

There is a screen on:
21572.pippo (Detached)
1 Socket in /var/folders/Jf/Jfv6jbWaHOGEgCwxYDFMTk+++TM/-Tmp-/.screen.

Il comando screen -ls ci da’ come si puo’ vedere le seguenti informazioni:

21572      = il numero di PID del processo qualora si voglia killarlo per es.
pippo       = il nome della sessione screen attiva
detached = lo stato di screen
socket      = il percorso fisico nel quale viene eseguito il comando

Altre utilissime informazioni le trovate nel manuale allegato al comando (“man screen” da terminale) oppure ai seguenti link, per approfondire:

http://www.oreillynet.com/linux/cmd/cmd.csp?path=s/screen
http://www.rackaid.com/resources/linux-tutorials/general-tutorials/using-screen