Vediamo un po’ come in linux possiamo istanziare un terminale permanente mediante screen per mantenere in esecuzione script dalla lunga esecuzione.

Problema: utilizzando il terminale di linux dovete lanciare un comando o uno script che richiederà molto tempo, ma non potete lasciar aperto il terminale o la sessione di ssh per tutte le ore o i giorni che impiegherà…

Soluzione: ci viene in aiuto il comando screen, vero e proprio “moltiplicatore di terminali” con il quale possiamo aprire una nuova sessione “virtuale” che  rimarrà aperta anche quando chiuderemo la sessione corrente.

Eseguendo infatti il comando seguito dal comando che si vuole lanciare, nel nostro caso direttamente la bash:

screen bash

Istanzieremo la bash nel nuovo terminale virtuale dal quale potremo lanciare il nostro comando dalla lunga esecuzione.

All’interno della sessione di screen potremo compiere varie operazioni:

  • premendo ctrl+a seguito da c creeremo un nuovo terminale.
  • premendo ctrl+a seguito da n passeremo al terminale successivo.
  • premendo ctrl+a seguito da p passeremo al terminale precedente.
  • premendo ctrl+a seguito da d torniamo alla nostra sessione, mantenendo in esecuzione i comandi pendenti eseguiti in quella di screen.

Ricollegandoci in un secondo momento potremo usare il comando seguente per riaprire una precedente sessione:

screen -r 1234

Dove ovviamente 1234 è il SID della sessione che desideriamo riaprire (digitando “screen -r” viene mostrato l’elenco dei PID).

Per killare una sessione di screen:

screen -X -S 1234