Automatikusan elindítom a gnu képernyőt, amikor a saját szerveremen eggyé válok. Ha elkészültem, le kell válnom. Ezután lépjen ki, hogy kilépjen az ssh-ből. Ez azt jelenti, hogy amikor egy bizonyos ponton újra belépek a szerverbe, ott folytathatom, ahol abbahagytam.
Létrehozhatok egy álnevet (például), amely (a képernyőn belülről) leválasztja és eldobja az ssh-t?
Megjegyzések
Válasz
A screen
indítása a távoli gazdagépen történő bejelentkezéskor (a helyi gépen végrehajtva):
ssh -t user@host screen
A képernyőn a távoli állomáson lévő munkamenet leválasztására és kijelentkezésére (ami az SSH munkamenetet befejezné, hacsak nem használ állandó kapcsolatot egy vezérlőaljzaton keresztül (azaz a ControlMaster
beállítást használja ControlPersist
itt: ~/.ssh/config
)):
screen -d
Később a bejelentkezéshez és csatolja újra:
ssh -t user@host screen -r
Ne feledje, hogy a -t
-t a , az ál-terminál kiosztás kényszerítésével a screen
ilyen módon történő elindításához.
Az alias a távoli gazdagépen f vagy screen -d
, esetleg detach="screen -d"
vagy valami hasonló.
A helyi gazdagépen lehet egy szakasz a ~/.ssh/config
fájl mondása
Host *-screen RequestTTY force RemoteCommand screen -d -R Host myhost myhost-screen HostName myhost.somedomain.example.com User myname
Ezután, amikor használja a
ssh myhost-screen
screen
munkamenet jön létre (vagy csatolódik hozzá) a megadott gazdagépen, míg
ssh myhost
nem használná a következőt: screen
.
Megjegyzés: RemoteCommand
hozzáadva az OpenSSH 7.6 verziójához (2017) -10-03).
tmux
esetén:
- Használja a
tmux new-session -A -s "%n"
itt:~/.ssh/config
ascreen -d -R
helyett. - Használja a prefix d vagy
tmux detach-client
vagytmux detach
leváláshoz.
Megjegyzések
- Szép, thx. Otthon ez remekül fog működni. Nem tudtam a ' pseudo-tty kiosztás kényszerítéséről '. Ezt teszteltem, és működik.
Válasz
Amikor végrehajtja a képernyőn megjelenő parancsot a képernyő előhívására vagy létrehozására , A után felvesz egy megölést szülőhéjból, így megöli az ssh kapcsolatot.
példa a szülői folyamat megölésére, ha a szülő bash
kill $( ps -ax -o pid,ppid,args | grep "^$$ " | grep bash | awk "{print $2} " )
Megjegyzések
- Thx. Ha olyan helyről érkezem be, ahonnan nem tudom megadni a futtatni kívánt alkalmazást (például az online ssh app.shellngn.com ), és módosítom a kódsorát keresse meg az ssh munkameneteket, ez működni fog.
screen