Alcuni giorni fa abbiamo visto come avviare automaticamente la sessione di Tmux ogni volta che accedi a un sistema Linux in locale o in remoto tramite SSH. Oggi vedremo come avviare automaticamente lo Schermo sessione su Linux al momento dell'accesso. Le sessioni di avvio automatico dello schermo sono di grande aiuto quando si esegue un processo di lunga durata tramite SSH. Se hai perso la connettività di rete per qualsiasi motivo, il processo continuerà a essere eseguito all'interno della sessione Screen nel sistema remoto e potrai ricollegarti ad esso quando la rete tornerà online.
Avvio automatico della sessione dello schermo su Linux durante l'accesso
Per avviare automaticamente la sessione Screen su Linux, modifica il ~/.bash_profile del tuo sistema Linux o ~/.bashrc file:
$ nano ~/.bash_profile
Se il file sopra non è disponibile, basta crearlo.
E aggiungi le seguenti righe:
if [[ -z "$STY" ]]; then screen -xRR default fi
Qui abbiamo usato -x flag da allegare a una sessione dello schermo non scollegata. E il -RR flag tenta di riprendere la sessione di schermo staccata più giovane (in termini di tempo di creazione) che trova.
Nota: Se utilizzi la shell Zsh, aggiungi le righe precedenti in ~/.zshrc file.
Salva e chiudi il file. Disconnettersi e riconnettersi al sistema. Verrai indirizzato a una nuova sessione Screen denominata 'predefinita' .
Ora avvia qualsiasi processo all'interno della sessione Screen e scollegalo premendo Ctrl+a seguito da d . Il processo continuerà a essere eseguito all'interno della sessione Screen anche se la connessione di rete viene disconnessa. Una volta che la connessione di rete è tornata, puoi di nuovo SSH nel sistema remoto e vedrai che il lavoro è ancora in esecuzione!!
Dai un'occhiata alla seguente demo animata:
Consentitemi di chiarire cosa ho appena fatto nell'output sopra.
- Mi collego al mio server Ubuntu remoto tramite SSH dal mio sistema locale. Viene avviata automaticamente una nuova sessione Screen denominata "predefinita".
- All'interno della sessione Screen, eseguo un comando (es. watch grep \"cpu MHz\" /proc/cpuinfo) per monitorare la velocità della CPU.
- Quindi, mi sono disconnesso dalla sessione premendo Ctrl+a e d .
- E poi, elenco le sessioni Screen usando il comando "screen -ls" ed esco dalla sessione SSH.
- Infine, mi ricollego al sistema remoto tramite SSH e verifico se il processo continua a funzionare all'interno della sessione Screen senza alcuna interruzione.
Spero che tu capisca.
Per interrompere l'avvio automatico della sessione Screen, elimina semplicemente le righe aggiunte in precedenza dal ~/.bashrc del tuo sistema remoto o ~/.bash_profile file.