GNU/Linux >> Linux Esercitazione >  >> Linux

Comando dello schermo Linux:mantieni i processi in esecuzione nonostante una connessione interrotta

Immagino che lo sappiate tutti:siete connessi al vostro server con SSH e state compilando del software (ad esempio un nuovo kernel) o svolgendo qualche altra attività che richiede molto tempo, e improvvisamente la vostra connessione si interrompe per qualche motivo, e perdi il tuo lavoro incompiuto. Questo può essere molto fastidioso, ma fortunatamente esiste una piccola utility chiamata schermo che ti consente di ricollegarti a una sessione precedente in modo da poter completare il tuo compito. Questo breve tutorial mostra come utilizzare lo schermo proprio per questo scopo.

1 Installazione del comando screen

L'installazione dello schermo è molto semplice. Su Debian, esegui:

apt-get install screen

Per Ubuntu, usa il comando con sudo:

sudo apt-get install screen

E per Fedora, CentOS, SuSE e Mandriva ci sono anche pacchetti schermo che puoi installare con yum/yast/urpmi/...

Fedora e CentOS

yum install screen

2 Utilizzo del comando schermo

Con lo schermo puoi creare una o più sessioni nel tuo attuale terminale SSH. Corri

screen

per avviarlo. Questo crea una sessione dello schermo o una finestra (anche se non la vedi come tale) nel tuo attuale terminale SSH:

Premi Spazio o Invio per arrivare al prompt dei comandi:

Assomiglia al tuo normale terminale SSH, vero?

Ora descriverò i comandi dello schermo più importanti di cui hai bisogno per controllare lo schermo. Questi comandi iniziano con CTRL a per distinguerli dai normali comandi della shell.

  • Ctrl a c - Crea una nuova sessione dello schermo in modo da poter utilizzare più di una sessione dello schermo contemporaneamente.
  • Ctrl a n - Passa a n sessione dello schermo est (se ne usi più di uno).
  • Ctrl a p - Passa a p sessione dello schermo precedente (se ne utilizzi più di una).
  • Ctrl a d - Scollega una sessione dello schermo (senza terminare i processi in essa contenuti - continuano).

Per chiudere una sessione dello schermo in cui tutte le attività sono terminate, puoi digitare

exit

Ora giochiamoci un po'. Nella nostra finestra dello schermo, eseguiamo il comando

top

Questo dovrebbe assomigliare a questo:

Ora creiamo un'altra sessione dello schermo digitando

Ctrl a c

Si apre una nuova sessione con schermo vuoto e si avvia

tail -f /var/log/mail.log

per dare un'occhiata al nostro registro di posta:

Ora puoi sfogliare le tue sessioni su due schermi eseguendo

Ctrl a n

o

Ctrl a p

Per staccare una sessione dello schermo e tornare al tuo normale terminale SSH, digita

Ctrl a d

Tornando al tuo normale terminale SSH, puoi eseguire

screen -ls

per ottenere un elenco delle sessioni dello schermo correnti:

There are screens on:
        2477.pts-0.server1      (Detached)
        2522.pts-0.server1      (Detached)
2 Sockets in /var/run/screen/S-root.

Per riconnetterti a una di queste sessioni, esegui

screen -r 2477.pts-0.server1

dove 2477.pts-0.server1 è il nome di una delle sessioni dall'output di screen -ls.

Per uscire e terminare una sessione dello schermo, completa tutte le attività correnti al suo interno (la parte superiore può essere completata digitando q, tail -f /var/log/mail.log può essere completata digitando CTRL c) e quindi digita

exit

Tornerai quindi a un'altra sessione dello schermo (se ne utilizzi più di una) o al normale terminale SSH, se non sono aperte più sessioni dello schermo.

Se vuoi saperne di più sullo schermo, esegui

man screen

3 La mia connessione è interrotta:cosa posso fare?

Ora supponiamo che tu compili un kernel in una sessione dello schermo, cosa che normalmente richiede molto tempo, e improvvisamente la tua connessione si interrompe. Grazie allo schermo il tuo lavoro non è perso. Una volta eseguito il backup della connessione, accedi nuovamente al tuo sistema con SSH ed esegui

screen -ls

come mostrato nel capitolo 2. Dai risultati, scegli una sessione (ad es. 2477.pts-0.server1) e ricollegala:

screen -r 2477.pts-0.server1

Se hai scelto la sessione giusta, dovresti trovare il tuo kernel ancora in fase di compilazione (se nel frattempo non è terminato) in modo da poter continuare il tuo lavoro.

  • schermo:http://www.gnu.org/software/screen

Linux
  1. 5 modi per mantenere in esecuzione sessioni e processi SSH remoti dopo la disconnessione

  2. 4 modi per mantenere un comando in esecuzione dopo esserti disconnesso dalla sessione SSH

  3. Ssh:mantieni i processi in esecuzione dopo la disconnessione della sessione Ssh?

  4. comando Linux ps

  5. Riprendi il comando in esecuzione nella sessione SSH interrotta

Comando Pgrep in Linux

Comando PS Linux con esempi

Esegui processi in background in Linux usando il comando Screen

Spiegazione del comando dello schermo su Linux

Comando Linux ps – 20 esempi di vita reale

Comando Linux fusore con esempi