Korzystam z narzędzia Screen i chcę zachować sesję po ponownym uruchomieniu komputera. Jeśli nie jest to możliwe, możesz polecić inne alternatywy dla Screen , które pozwoliłyby zachować sesje pomiędzy restartami.
Używam Ubuntu Server 10.04 (Lucid Lynx), jeśli to ma znaczenie.
Mam kilka sesji otwartych przez Screen. Gdy komputer uruchomi się ponownie, wszystkie te sesje zostaną utracone i muszę je ponownie otworzyć. Chciałem znaleźć sposób na zachowanie tych sesji ekranu.
gnu-screen
Sergey G.
źródło
źródło
Odpowiedzi:
Przede wszystkim wyjaśnijmy kilka ważnych rzeczy:
Jeśli w grę wchodzi jedna maszyna lub serwer jest uruchamiany ponownie, przeważnie nie masz szczęścia.
Jeśli logujesz się na maszynie zdalnej, ale musisz zrestartować komputer lokalny, to nie ma problemu, dopóki uruchomisz ekran na maszynie zdalnej zamiast na komputerze lokalnym. Zdaję sobie sprawę, że jest to dość oczywiste dla każdego doświadczonego (nawet nieco doświadczonego) użytkownika ekranu, ale wspominam o tym na wszelki wypadek.
Jeszcze inną możliwością (ponownie, czy to jest dla ciebie pomocne, zależy od okoliczności) jest uruchomienie maszyny z ekranem na maszynie wirtualnej. Załóżmy, że jest to zdalny serwer fizyczny i należy go zrestartować, ale ma system operacyjny gościa (np.) VMware. Możesz zawiesić system operacyjny gościa i uruchomić go ponownie po ponownym uruchomieniu sprzętu. Wszystko zależy od tego, dlaczego musisz zrestartować komputer, który nie został określony, oraz od tego, ile masz kontroli nad maszyną i od tego, czy chcesz podjąć wszystkie te problemy.
Nie ma ŁATWEGO rozwiązania i możliwe, że żadne z tych rozwiązań nie będzie dla Ciebie odpowiednie. Ale powodzenia.
Jeśli logujesz się na wiele komputerów, może wydawać się to zbyt uciążliwe, aby uruchamiać ekran osobno na wszystkich zdalnych komputerach i tak jest. W takim przypadku przydatne jest posiadanie ekranu uruchamiania maszyny pośredniej, który może mieć wiele okien ekranu, z których każde jest zalogowane na innym komputerze zdalnym. Dopóki maszyna pośrednia pozostaje uruchomiona, możesz ponownie uruchomić własną maszynę lokalną (lub spakować ją do torby i zabrać do domu na noc, czy cokolwiek innego), a ekran nadal działa na maszynie pośredniej. (I oczywiście, jeśli którakolwiek ze zdalnych maszyn ulegnie awarii, utracisz połączenie z tą maszyną, ale reszta sesji ekranu jest w porządku.)
Ale najprawdopodobniej masz na myśli albo maszynę zdalną, albo jedyną maszynę, która zostanie zrestartowana, w takim przypadku nie ma prostego sposobu, aby to zrobić. CryoPID na początku brzmi obiecująco, ale jego strona internetowa mówi, że nie działa na ekranie.
Ale jest jeszcze jedna obiecująca opcja, którą warto zbadać. (To, czy zadziała, zależy w dużej mierze od tego, co próbujesz zrobić.) Sprawdź to na github.com: https://github.com/skoneka/screen-session/tree/master/ScreenSession/
źródło
W niektórych rzadkich okolicznościach jest to możliwe (patrz CryoPID lub CryoPID2 ), ale ogólnie jest to trudne, więc nie można tego zrobić.
źródło
Zamiast używać ekranu, użyj małej maszyny wirtualnej Virtualbox i pracuj w tym. Następnie możesz po prostu hibernować go, ponownie uruchomić hosta, a następnie obudzić maszynę wirtualną z powrotem (podobnie jak zamykanie i ponowne otwieranie pokrywy laptopa). Połączenia SSH ze zdalnymi hostami prawdopodobnie nie utrzymają się przy użyciu tej metody, nie sądzę, że można by to zagwarantować.
źródło
Nie możesz. Na pewno nie na tej samej maszynie
źródło
W tym wszystkim sam ekran jest dość marginalny. To nie ekran, który chcesz „zapisać”, prawda ?, ale środowiska w różnych sesjach ekranu, czymkolwiek one są.
Wydaje się, że sugerujesz, że zapisanie sesji Screen obejmowałoby proces SSH wewnątrz niej i wszelkiego rodzaju. To, co dzieje się w Screen, nie jest w ogóle sprawą Screena i są to rzeczy, które trudno byłoby „uratować” ... cokolwiek by to naprawdę znaczyło, gdyby można je było wdrożyć.
źródło