Home>Guide>Come usare il comando screen

Come usare il comando screen




Ti è mai capitato di avviare un processo lungo sul server e poi perdere tutto solo perché ti sei disconnesso per errore o per un timeout del terminale? O magari volevi lanciare un processo sul tuo server e lasciarlo in esecuzione anche dopo aver chiuso il terminale? Ecco, il comando screen è ciò che ti serve per risolvere questi problemi!

In questo articolo vedrai in modo semplice e pratico cos’è screen, come si usa, e perché – una volta provato – non potrai più farne a meno. Sei pronto a scoprirlo?

  • Leggi l'articolo, ti bastano solo 7 minuti, 6 secondi
    Sei di fretta? Scarica il PDF e consultalo quando vuoi!

Cos’è il comando screen

Il comando screen è un tool da terminale (disponibile su sistemi operativi Unix-like) che ti permette di creare sessioni “virtuali” persistenti.
In pratica, puoi avviare un processo, disconnetterti tranquillamente, e poi tornare più tardi riprendendo da dove eri rimasto o addirittura da un altro terminale.

Bellissimo, no?


Come si usa screen

Per iniziare ti basta scrivere:

screen

Tutto qui? Beh si, sei dentro una nuova sessione. A prima vista sembra il solito terminale, ma in realtà è una “finestra” separata dal tuo normale terminale, che funziona in modo indipendente dal tuo terminale e dal tuo pc.

Per uscire senza chiudere la sessione, premi:

Ctrl + A, poi D

La D sta per “detach”, cioè ti stacchi dalla sessione.

Ora puoi anche chiudere il terminale: la sessione screen e tutto ciò che è in essa in esecuzione resta viva sul server!


Come rientrare in una sessione screen

Per vedere tutte le sessioni attive, è sufficiente digitare:

screen -ls

che restituisce l’elenco delle sessioni screen attive, ad esempio:


There is a screen on:
12345.pts-0.server-name (Detached)

dove 12345 è l’ID della sessione in screen sul server “server-name”, in status “Detached”.

Ma cosa sta facendo questa sessione? Cosa c’è in esecuzione in essa?
Per saperlo, è sufficiente rientrare:

screen -r 12345

E sei di nuovo dove avevi lasciato tutto, come se niente fosse successo. Wow!


Esempio pratico: avviare uno script che dura ore

Ma a cosa potrebbe servire il comando screen in concreto?
Immagina di avere uno script che fa un backup che procede lentamente e richiede ore:

bash backup.sh

Ipotizza di aver lanciato il comando ma… si è fatta ora di andare via! Sei costretto ad attendere la fine del processo, oppure ad interromperlo e riavviarlo successivamente, quando avrai più tempo.
Con screen questo non sarebbe successo!

Invece di lasciarlo andare nel terminale normale (rischiando di interromperlo), puoi:

  • Avviare screen: screen
  • Lanciare il comando: bash backup.sh
  • Fare: Ctrl + A poi D/li>
  • Spegnere il PC, andare a pranzo, vivere la vita
  • Tornare all’esecuzione: screen -r e vedere com’è andata

Bello no?


Chiudere una sessione screen

Una volta che l’esecuzione è terminata, hai verificato ciò che volevi, puoi chiudere il tuo screen. Per farlo:

  • Rientra nella sessione con screen -r
  • Esci digitando exit
  • Oppure chiudi il terminale con Ctrl + D

In questo modo la sessione sarà terminata definitivamente. Per controllare, puoi eseguire:

screen -ls

e non troverai più l’ID della sessione (nel nostro esempio: 12345)


Qualche trucchetto in più

NOME SCREEN

Per semplificare ancora di più le cose, puoi anche dare un nome “parlante” alle tue sessioni screen, ad esempio nell’esempio che abbiamo usato, un nome potrebbe essere “Esecuzione backup”. Per dare un nome alla sessione screen, è sufficiente dichiararlo usando il parametro “-S” quando avvi la sessione:

screen -S "Esecuzione backup"

A questo punto, puoi fare il restore della sessione usando o l’ID (come visto in precedenza) oppure il nome:

screen -r "Esecuzione backup"

CHIUDI TUTTI GLI SCREEN

Se invece desideri chiudere in un colpo solo tutti gli screen aperti:

screen -X -S ID quit

Ovviamente prima di farlo, assicurati che tutti gli screen abbiamo terminato le esecuzioni al loro interno per non perdere nulla!


Documentazione e link utili

Ma non finisce qui! screen dispone di altre opzioni per darti ancora più possibilità e flessibilità, se volessi approfondire dai un’occhiata alla documentazione ufficiale digitando:

screen --help

Ecco infine qualche link utile se desideri approfondire gli argomenti di cui abbiamo parlato:


Conclusioni

Ti è piaciuto il comando screen? È perfetto per chi lavora su server da remoto (via SSH), per chi esegue processi lunghi (magari da portatile) e non vuole perdere nulla, per chi ama avere il controllo e la flessibilità nel terminale, mantenendolo ordinato e pulito, per chi vuole condividere sessioni di processi e così via…
Cosa aspetti ad usarlo? Facci sapere cosa ne pensi!



Ti è piaciuto questo articolo? Regalami un click per ripagarmi dello sforzo



Code4Life ti è stato utile? Sostienici con una donazione!

Dona con PayPal

Hai trovato interessante l’articolo? Allora ti consiglio di leggere:

Come convertire un file HTML in PDF


Hai l’esigenza di creare un file PDF in modo semplice e veloce? Scopri come creare un file PDF partendo da una pagina HTML.

Oppure cerca tra gli articoli correlati


E tu cosa ne pensi? Condividi la tua opinione e discutiamone insieme
La tua email non sarà resa pubblico o utilizzata per inviarti spam, te lo prometto

Iscrivimi alla newsletter per ricevere news ed aggiornamenti
Utilizziamo piattaforme di terze parti per l’invio di newsletter. (Informativa sulla privacy)
Tienimi aggiornato su questo articolo
Ricevi una email di notifica quando qualcuno scriverà un commento a questo articolo. (Informativa sulla privacy)
Ricorda i miei dati per la prossima volta che scriverò un commento
Il tuo nome e la tua email verranno salvati in un cookie in questo browser. (Informativa sulla privacy)