Automaticky spustím obrazovku gnu, když ssh do jedné na svých vlastních serverech. Až budu hotový, musím se oddělit. Poté ukončete ssh. To znamená, že když se v určitém okamžiku znovu připojím na server, mohu pokračovat tam, kde jsem přestal.
Mohu vytvořit například alias, který (z obrazovky) odpojí a vypustí ssh?
Komentáře
odpověď
Spuštění screen
při přihlášení ke vzdálenému hostiteli (provedeno na místním počítači):
ssh -t user@host screen
Na obrazovce relace na vzdáleném hostiteli k odpojení a odhlášení (což by ukončilo relaci SSH, pokud nepoužíváte trvalé připojení pomocí ovládacího soketu (tj. pomocí nastavení ControlMaster
s ControlPersist
in ~/.ssh/config
)):
screen -d
Později se přihlásit a znovu připojte:
ssh -t user@host screen -r
Všimněte si, že musíte použít -t
s ssh
, vynucení přidělení pseudoterminálu, aby se screen
spustilo tímto způsobem.
Alias na vzdáleném hostiteli by byl f nebo screen -d
, možná detach="screen -d"
nebo něco podobného.
Na místním hostiteli můžete mít sekci ve svém ~/.ssh/config
soubor říká
Host *-screen RequestTTY force RemoteCommand screen -d -R Host myhost myhost-screen HostName myhost.somedomain.example.com User myname
Potom, kdykoli použijete
ssh myhost-screen
a screen
relace bude vytvořena (nebo znovu připojena) na zadaném hostiteli, zatímco
ssh myhost
nepoužije screen
.
Poznámka: RemoteCommand
byl přidán do OpenSSH 7.6 (2017 -10-03).
Pro tmux
:
- Použijte
tmux new-session -A -s "%n"
v~/.ssh/config
místoscreen -d -R
. - Použijte prefix d nebo
tmux detach-client
nebotmux detach
k odpojení.
Komentáře
- Pěkné, thx. Doma to bude fungovat skvěle. Nevěděl jsem o ' Vynutit přidělení pseudo-tty '. Testoval jsem to a funguje to.
Odpovědět
Když spustíte příkaz obrazovky k vyvolání nebo vytvoření obrazovky , Po přidáte zabití rodičovského prostředí, takže zabijete ssh připojení.
příklad, jak zabít můj rodičovský proces, pokud je rodičem bash
kill $( ps -ax -o pid,ppid,args | grep "^$$ " | grep bash | awk "{print $2} " )
Komentáře
- Thx. Pokud se ssh přihlásím odněkud, kde nemohu určit aplikaci, která se má spustit (jako online ssh app.shellngn.com ), a upravím váš řádek kódu na podívejte se na ssh relace, bude to fungovat.
screen