GNU/Linux >> Linux Esercitazione >  >> Linux

Avvio automatico della sessione Tmux sul sistema remoto quando si accede tramite SSH

È sempre buona norma eseguire un processo di lunga durata all'interno di un Tmux sessione quando si lavora con sistemi remoti tramite SSH. Perché ti impedisce di perdere il controllo del processo in esecuzione quando la connessione di rete si interrompe improvvisamente. Nel caso in cui la connessione di rete venga interrotta per qualsiasi motivo, i processi all'interno della sessione di Tmux continueranno a essere eseguiti sui sistemi remoti, quindi puoi ricollegarti alla sessione di Tmux usando il comando "tmux attach" una volta che la connessione di rete è tornata online. Cosa succede se ti sei dimenticato di avviare la sessione di Tmux in primo luogo? Non importa quanto stai attento, a volte potresti dimenticare di avviare la sessione di Tmux. Ecco un modo semplice per evitare questo problema. È possibile avviare automaticamente la sessione Tmux sui sistemi remoti durante la registrazione tramite SSH. Ciò è particolarmente utile se hai perso la connessione di rete durante l'aggiornamento di un server Linux remoto tramite SSH dal tuo sistema locale. Tieni presente che il seguente suggerimento avvierà automaticamente una sessione Tmux ogni volta che tenti di accedere al tuo sistema Linux in locale o in remoto tramite SSH da un altro sistema.

Avvia automaticamente la sessione Tmux sul sistema remoto quando si accede tramite SSH

Per avviare automaticamente la sessione di Tmux durante la connessione tramite SSH, modifica il ~/.bash_profile del tuo sistema remoto file:

$ nano ~/.bash_profile

Se il file non è disponibile, crealo.

E aggiungi le seguenti righe:

if [ -z "$TMUX" ]; then
    tmux attach -t default || tmux new -s default
fi

Salva e chiudi il file. Disconnettersi e riconnettersi ai sistemi remoti. Verrai indirizzato a una nuova sessione Tmux denominata 'default' .

Ora, avvia qualsiasi processo all'interno della sessione di Tmux e staccalo premendo Ctrl+b seguito da d . Il processo continuerà a essere eseguito all'interno della sessione di Tmux anche dopo che la connessione di rete viene interrotta. Una volta che la connessione alla rete è tornata, SSH nel sistema remoto e vedrai che il lavoro è ancora in esecuzione!!

Dai un'occhiata al seguente output animato:

Consentitemi di chiarire cosa ho appena fatto nell'output sopra.

  1. Mi collego al mio server Ubuntu remoto tramite SSH dal mio sistema locale. Viene avviata automaticamente una nuova sessione di Tmux denominata "default".
  2. All'interno della sessione di Tmux, eseguo un comando (es. watch grep \"cpu MHz\" /proc/cpuinfo) per monitorare la velocità della CPU.
  3. Quindi, mi sono disconnesso dalla sessione premendo Ctrl+b e d .
  4. E poi, elenco le sessioni di Tmux usando il comando "tmux ls" ed esco dalla sessione SSH.
  5. Infine, mi ricollego al sistema remoto tramite SSH e verifico se il processo continua a funzionare all'interno della sessione di Tmux senza alcuna interruzione.

Spero che tu capisca.

Per interrompere l'avvio automatico della sessione di Tmux, elimina semplicemente le righe aggiunte in precedenza dal ~/.bashrc del tuo sistema remoto o ~/.bash_profile file.

Questo semplice consiglio ti aiuta a evitare di perdere il controllo dei tuoi lavori a distanza. Non è sempre necessario avviare manualmente Tmux ogni volta. Basta fare in modo che Tmux si avvii automaticamente ogni volta che esegui SSH in un sistema remoto come descritto in questa guida.

Lettura consigliata :

  • Come avviare automaticamente la sessione dello schermo su Linux durante l'accesso
  • Reptyr:sposta un processo in esecuzione da un terminale all'altro senza chiuderlo

Linux
  1. Ssh:copia un file sul sistema locale con Ssh?

  2. Ssh:come eseguire uno script immediatamente dopo la connessione tramite Ssh?

  3. Tmux Socket Api?

  4. SSH con authorized_keys su un sistema Ubuntu con homedir crittografato?

  5. Riproduci audio *su* computer remoto tramite ssh su Ubuntu/Linux

Come eseguire i comandi Linux su un sistema remoto su SSH

Come avviare automaticamente la sessione dello schermo su Linux durante l'accesso

Esegui comandi su sistemi Linux remoti tramite SSH

SSHFS:montaggio di un file system remoto su SSH

Come mantenere le sessioni SSH remote in esecuzione dopo la disconnessione

Sessione ssh/X interrotta, come riprendere da dove si era interrotto?