Cookie

Mettere un programma in background con “screen”

Pubblicato da TheJoe il

Tempo di lettura stimato: < 1 minuto

Attenzione


Questo articolo è stato pubblicato più di un anno fa, potrebbero esserci stati sviluppi.
Ti preghiamo di tenerne conto.

Oggi parliamo di screen: una piccola utility a riga di comando per sistemi Linux.

Screen, molto semplicemente, è in grado di moltiplicare i terminali a nostra disposizione, di sganciare un terminale dal proprio processo e di mantenere il processo attivo in background (restituendoci il terminale da utilizzare).

Screen è particolarmente utile quando si lancia un comando che prevede un tempo di risposta piuttosto lungo (ad esempio un backup) sia esso lanciato in locale o su un server remoto. Il timeout del server o il kill involontario da parte dell’utente potrebbe provocare l’interruzione del comando e vanificare il tempo speso.

Ma vediamo come funziona:

screenavvia screen e restituisce la shell
screen + comandoavvia il programma “comando” all’interno di “screen”
Una volta avviato “screen
ctrl+a” e poi “ccrea un nuovo terminale
ctrl+a” e poi “npassa al terminale seguente
ctrl+a” e poi “ppassa al terminale precedente
ctrl+a” e poi “d“sgancia” screen dalla sessione

Una volta sganciati dalla sessione possiamo terminare il tunnelling SSH o chiudere il terminale. Il programma continuerà ad essere eseguito in background.

Per recuperare una sessione precedente occorrerà “riagganciarsi”:

screen -listelenca tutte le sessioni avviate
screen -rrecupera una sessione avviata in precedenza

Qui sotto uno esempio del terminale con due sessioni “sganciate” di screen.

~$ screen -d
There are screens on:
16268.pts-3.joe-desktop (01/12/2019 20:58:09) (Detached)
23799.pts-4.joe-desktop (01/12/2019 16:30:08) (Detached)
There is no screen to be detached.
~$

Per “riagganciarsi” a una sessione specifica basterà specificare il PID. Nel nostro caso “screen -r 16268“.

Guarda qui:  Puredyne: Una distribuzione per gli artisti, dagli artisti

Per cancellare uno screen questo è il comando: screen -X -S {PID della sessione} kill.


TheJoe

Mantengo questo blog a livello amatoriale dal 2009. Sono appassionato di grafica, tecnologia, software Open Source. Fra i miei articoli non sarà difficile trovarne circa la musica, ed alcuni di riflessioni personali, ma preferisco indirizzare la linea del blog principalmente verso la tecnologia. Per informazioni contattami.

0 commenti

Lascia un commento

Segnaposto per l'avatar

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.