Zasadniczo mam zdalną sesję ekranu, do której chcę automatycznie ponownie dołączyć. Obecnie wykonuję to za pomocą następującego polecenia (jako zakładki iTerm lub aliasu)
ssh host -t screen -x thesessionname
Działa to dobrze, ale jeśli sesja umrze z jakiegokolwiek powodu, chciałbym ją odtworzyć przy następnym połączeniu. -R
Flaga dla screen
jest prawie idealne:
ssh host -t screen -R -S thesessionname
.. ale jeśli sesja jest już dołączona, tworzona jest druga sesja (tak jak -R
w przypadku pierwszej odłączonej sesji, jeśli nie zostanie znaleziona, tworzy nową)
Czy istnieje sposób, aby -R
flaga szukała również dołączonych sesji i tworzyła nową, jeśli thesessionname
nie istnieje?
Jeśli nie jest to łatwo wykonalne, jak mogę automatycznie odtworzyć sesję ekranu po jej śmierci? Być może skrypt uruchamiany przez crona, który szuka nazwanej sesji, tworząc ją, gdyby nie istniała?
źródło
screen -x -R -S main
właśnie tego użyłem (działa tak samo bez wymuszonego odłączenia), dzięki!sceen -r <yoursession>
, wyświetli błąd, gdy jest już dołączony (zamiast tworzenia nowej sesji).Kilka dobrych opcji. Po pierwsze, mój ulubiony:
Spowoduje to dołączenie do pierwszej dostępnej sesji ekranowej (udostępnianie, jeśli podłączone jest inne połączenie), a jeśli w ogóle nie ma sesji ekranowych, rozpocznij nową.
Dokumenty tego typu mówią „Dołącz ponownie sesję i jeśli to konieczne, odłącz ją lub utwórz. Użyj pierwszej sesji, jeśli dostępna jest więcej niż jedna sesja”. Zasadniczo double-R sprawia, że szuka pierwszej sesji, z którą można się połączyć.
„Dołącz tu i teraz. Cokolwiek to znaczy, po prostu to zrób.” Odłączy i zdalnie wyloguje się z innych dołączonych sesji i dołączy do pierwszej sesji, jaką może. Zasadniczo robi wszystko, co trzeba, aby dołączyć do istniejącej sesji i tworzy nową, jeśli nic tam nie ma.
Pierwszy (-x -R) powoduje najmniej problemów (nie odłączy twojego drugiego połączenia), ale po prostu zawsze dołącza do czegoś, jeśli jest coś do czego się przyczepi i tworzy coś, jeśli nie ma się do czego przyczepić.
źródło
używam
Nie chcę, aby moje całe logowanie na drugiej powłoce zostało usunięte, podobnie jak
-D
robi, i zdecydowanie nie chcę trybu wielokrotnego dołączania-x
.źródło