Czytałem o tym, jak automatycznie uruchomić ekran, kiedy przechodzę ssh
do zdalnego serwera. Chciałbym dodać prostą jedną linijkę, aby dodać ją do mojej, .bash_profile
aby rozpocząć, screen
kiedy jestem ssh
w środku, i NIE wychodzić z mojego zdalnego połączenia po odłączeniu ekranu.
I zostały patrząc exec screen
i prawie każda kombinacja -d
, -r
, -D
i -R
nie może dowiedzieć się, co muszę flagi.
Idealnie byłoby napisać ssh whatever
i zalogować się na serwerze w nowym screen
lub może on ponownie podłączyć stary ekran, chciałbym wiedzieć, jak to zrobić, aby zobaczyć, które lubię bardziej. Następnie mogę wpisać Ctrl adlub Ctrl d, aby przywrócił mnie do normalnego ssh
logowania dla tego serwera (gdzie zobaczysz motd). Stamtąd mogę screen -r
wrócić do dowolnego ekranu lub nacisnąć Ctrl dponownie, aby się wylogować.
źródło
logout
lubexit
zaraz po tym wierszu sesja ssh jest natychmiast kończona po zamknięciu ekranu przez ctrl + D?Miałem problemy z tworzeniem 40 kaskadowych sesji ekranowych z niektórymi rozwiązaniami podczas uruchamiania nowego okna lub sesji ekranowej. Byłem w stanie wyeliminować ekran kaskadowy i utworzyć nową sesję, jeśli nie istniała z tym:
Sprawdza, czy jesteś w sesji ekranowej i uruchamia się,
screen -R
jeśli nie. Bez testu pojawi się komunikat „Dołączanie z wnętrza ekranu?” ostrzeżenie z ekranu za każdym razem, gdy tworzysz nowe okno ekranu.źródło
screen -ls
test, o którym wspomniał Tonyscreen -RR
połączy się ponownie z pierwszą dostępną sesją lub utworzy jedną, jeśli to konieczne.źródło
Jeśli rozumiem twoją potrzebę, powinieneś spróbować:
if $(screen -ls | grep -q pts); then screen -x; else screen -R; fi
Utworzy tylko jedną sesję ekranu, w przeciwnym razie ponownie połączy się z istniejącą w trybie wielu okien (nawet jeśli masz wiele sesji ssh, skończysz na tej samej sesji)
źródło
screen -xR
, co wydaje się sparsowane jako „dołącz, jeśli jest coś do przyłączenia, w przeciwnym razie utwórz nowy ekran”.Oto małe rozszerzenie
skrypt skryptu bashrc sprawdza, czy istnieje więcej niż jedna odłączona sesja ekranowa. Jeśli jest ich więcej, musisz wybrać sesję ręcznie. Gdy jest sesja odłączona, wracasz do tej sesji. Jeśli wyjdziesz z sesji, sesja ssh również się zamknie.
źródło
Jeśli chcesz automatycznie łączyć się z sesją ekranową po połączeniu przez SSH, dodaj poniższy kod do swojego
.bash_profile
lub twojego.bashrc
na zdalnym komputerze:.bashrc
Oto skrypt:
PS: Jeśli chcesz włączyć to dla lokalnego terminala, usuń
&& ! -z "${SSH_CLIENT}
w pierwszej linii.źródło