Spesso si ha la necessità di eseguire nella shell comandi che richiedono molto tempo, come ad esempio il trasferimento di grandi quantità di dati. In questi casi non è consigliabile eseguire il comando direttamente nella shell ssh per svariati motivi:

  • potrebbe cadere la connessione ssh interrompendo il processo
  • potrebbe essere necessario iniziare l’operazione da un pc e verificarne periodicamente l’esecuzione da un altro

In questi casi viene in aiuto “screen” che permette di creare una o più sessioni, lanciare al loro interno i nostri comandi e “sganciarle” da quella corrente, lasciandole lavorare in background. A quel punto ci si può disconnettere dal terminale ssh e ricollegarsi in seguito per “riagganciarle”.

Di seguito l’uso più comune:

# installazione ubuntu/debian
apt install screen

# avvio
screen

ctrl+a poi c (avvia un nuovo teminale screen)

ctrl+a poi n (passa al terminale successivo)

ctrl+a poi p (passa al terminale precedente)

ctrl+a poi d ("sgancia" le sessioni screen e torna al terminale ssh. Le sessioni continuano a lavorare in backgroud" e ci si può anche disconnettere dal terminale)

screen -r ("riaggancia" le sessioni screen precedentemente sganciate)

screen -list (mostra le sessioni screen attive)