GNU/Linux >> Znalost Linux >  >> Linux

Automatické spuštění relace Tmux na vzdáleném systému při přihlášení přes SSH

Vždy je dobrým zvykem spustit v Tmuxu dlouho běžící proces relaci při práci se vzdálenými systémy přes SSH. Zabrání totiž tomu, abyste ztratili kontrolu nad běžícím procesem, když náhle přestane fungovat síťové připojení. Pro případ, že by z nějakého důvodu došlo k přerušení síťového připojení, procesy uvnitř relace Tmux poběží na vzdálených systémech, takže se můžete znovu připojit k relaci Tmux pomocí příkazu „tmux attachment“, jakmile bude síťové připojení opět online. Co když jste na prvním místě zapomněli spustit relaci Tmux? Bez ohledu na to, jak jste opatrní, někdy můžete zapomenout spustit relaci Tmux. Zde je jednoduchý způsob, jak se tomuto problému vyhnout. Při přihlašování přes SSH můžete automaticky spustit relaci Tmux na vzdálených systémech. To je zvláště užitečné, pokud jste ztratili síťové připojení při upgradu vzdáleného linuxového serveru přes SSH z vašeho místního systému. Vezměte prosím na vědomí, že následující tip automaticky spustí relaci Tmux, kdykoli se pokusíte přihlásit k systému Linux lokálně nebo vzdáleně přes SSH z jiného systému.

Automaticky spustit relaci Tmux na vzdáleném systému při přihlášení přes SSH

Chcete-li automaticky spustit relaci Tmux při připojení přes SSH, upravte ~/.bash_profile vzdáleného systému soubor:

$ nano ~/.bash_profile

Pokud soubor není k dispozici, stačí jej vytvořit.

A přidejte do něj následující řádky:

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

Uložte a zavřete soubor. Odhlaste se a přihlaste se zpět do vzdálených systémů. Budete přesměrováni do nové relace Tmux s názvem 'výchozí' .

Nyní spusťte jakýkoli proces uvnitř relace Tmux a odpojte jej stisknutím Ctrl+b následuje d . Proces bude pokračovat uvnitř relace Tmux i po přerušení síťového připojení. Jakmile je síťové připojení zpět, SSH do vzdáleného systému a uvidíte, že úloha stále běží!!

Podívejte se na následující animovaný výstup:

Dovolte mi objasnit, co jsem právě udělal ve výše uvedeném výstupu.

  1. Připojuji se ke svému vzdálenému serveru Ubuntu přes SSH z mého místního systému. Automaticky se spustí nová relace Tmux s názvem „výchozí“.
  2. Uvnitř relace Tmux spustím příkaz (např. watch grep \"cpu MHz\" /proc/cpuinfo) pro sledování rychlosti CPU.
  3. Poté jsem se z relace odpojil stisknutím Ctrl+b a d .
  4. Poté vypíšu seznam relací Tmux pomocí příkazu "tmux ls" a ukončím relaci SSH.
  5. Nakonec se znovu připojím ke vzdálenému systému přes SSH a ověřím, zda proces běží uvnitř relace Tmux bez jakéhokoli přerušení.

Doufám, že rozumíte.

Chcete-li zastavit automatické spouštění relace Tmux, jednoduše odstraňte řádky, které byly přidány dříve, z ~/.bashrc vašeho vzdáleného systému nebo ~/.bash_profile soubor.

Tento jednoduchý tip vám pomůže vyhnout se ztrátě kontroly nad vzdálenými úlohami. Nemusíte vždy ručně spouštět Tmux pokaždé. Stačí, aby se Tmux spustil automaticky, kdykoli připojíte SSH do vzdáleného systému, jak je popsáno v této příručce.

Doporučeno k přečtení :

  • Jak automaticky spustit relaci obrazovky v systému Linux při přihlášení
  • Reptyr – přesunutí běžícího procesu z jednoho terminálu do druhého bez jeho uzavření

Linux
  1. 5 způsobů, jak udržet vzdálené relace a procesy SSH spuštěné po odpojení

  2. Ssh – Zkopírujte soubor zpět do místního systému pomocí Ssh?

  3. Ssh – Jak spustit skript ihned po připojení přes Ssh?

  1. Tmux Socket Api?

  2. SSH s autorizovanými klíči do systému Ubuntu se zašifrovaným homedir?

  3. Jak se mohu odhlásit z otevřené vzdálené relace SSH?

  1. Kdy použít Nohup?

  2. Ssh – protokolování pokusů o přístup Ssh?

  3. Přehrávejte zvuk *na* vzdáleném počítači přes ssh na Ubuntu / Linuxu