Před několika dny jsme viděli, jak automaticky spustit relaci Tmux kdykoli se přihlásíte do systému Linux lokálně nebo vzdáleně přes SSH. Dnes se podíváme na to, jak automaticky spustit Obrazovku session na Linuxu při přihlášení. Auto-start Screen sessions výrazně pomůže při spuštění dlouho běžícího procesu přes SSH. Pokud z jakéhokoli důvodu ztratíte připojení k síti, proces bude pokračovat v relaci obrazovky ve vzdáleném systému a můžete se k ní znovu připojit, až bude síť opět online.
Automaticky spustit relaci obrazovky v systému Linux při přihlášení
Chcete-li automaticky spustit relaci obrazovky v systému Linux, upravte ~/.bash_profile svého systému Linux nebo ~/.bashrc soubor:
$ nano ~/.bash_profile
Pokud výše uvedený soubor není k dispozici, jednoduše jej vytvořte.
A přidejte do něj následující řádky:
if [[ -z "$STY" ]]; then screen -xRR default fi
Zde jsme použili -x příznak pro připojení k relaci neodpojené obrazovky. A -RR flag se pokusí obnovit nejmladší (z hlediska doby vytvoření) oddělenou relaci obrazovky, kterou najde.
Poznámka: Pokud používáte Zsh shell, přidejte výše uvedené řádky do ~/.zshrc soubor.
Uložte a zavřete soubor. Odhlaste se a přihlaste se zpět do systému. Budete přesměrováni do nové relace obrazovky s názvem ‚výchozí‘ .
Nyní spusťte jakýkoli proces v relaci obrazovky a odpojte jej stisknutím Ctrl+a následuje d . Proces bude pokračovat v relaci obrazovky, i když se síťové připojení odpojí. Jakmile je síťové připojení zpět, můžete znovu SSH do vzdáleného systému a uvidíte, že úloha stále běží!!
Podívejte se na následující animované demo:
Dovolte mi objasnit, co jsem právě udělal ve výše uvedeném výstupu.
- 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 obrazovky s názvem „výchozí“.
- Uvnitř relace obrazovky spustím příkaz (např. watch grep \"cpu MHz\" /proc/cpuinfo) pro sledování rychlosti procesoru.
- Poté jsem se od relace odpojil stisknutím Ctrl+a a d .
- Poté vypíšu relace obrazovky pomocí příkazu "screen -ls" a ukončím relaci SSH.
- Nakonec se znovu připojím ke vzdálenému systému přes SSH a ověřím, zda proces běží v rámci Screen session bez jakéhokoli přerušení.
Doufám, že rozumíte.
Chcete-li zastavit automatické spouštění relace obrazovky, jednoduše odstraňte řádky, které byly přidány dříve, z ~/.bashrc vzdáleného systému nebo ~/.bash_profile soubor.