Czy istnieje wylogowanie terminala, które działa podobnie do tego, co robi GNU Screen?

8

Jak większość z was wie, GNU Screen to miłe narzędzie, które pozwala zrobić coś takiego:

Innym dobrym zastosowaniem do odłączania i ponownego podłączania jest funkcja „pulpitu zdalnego” w trybie konsoli. Możesz odłączyć się od sesji ekranowej w pracy, wrzucić powłokę do komputera z domu i podłączyć ponownie. Bardzo, bardzo przydatny. Przy odrobinie dodatkowej pracy możesz mieć nawet kilka terminali podłączonych do tej samej sesji - idealne do współpracy i spotkań.

Teraz jestem ciekawy, czy można to zrobić bez ekranu. Aka zamiast logut wpisuję magiclogout i przy następnym logowaniu dostaję moją starą sesję (jeśli OS nie zrestartował ofc)

NoSenseEtAl
źródło

Odpowiedzi:

6

byobu opiera się na ekranie; ma opcję menu, aby ustawić ją jako domyślną powłokę.

Możesz albo exitnormalnie, albo odłączać się alt-A, Dtak jak na zwykłym ekranie, a twoja sesja będzie czekać, gdy zalogujesz się ponownie.

Ponadto dodaje szereg kluczy do zarządzania terminalami, F2tworzenia nowego terminala F3i F4przemieszczania się między oknami oraz paska stanu z szeregiem przydatnych wskaźników, takich jak zaległe aktualizacje pakietów.

Jest instalowany domyślnie na kompilacjach Ubuntu Server i szybko staje się moim domyślnym terminalem na większości serwerów, którymi zarządzam.

Jak powiedziałem, byobu zależy od ekranu, aby działał ... Nie jestem świadomy żadnego sposobu wznowienia sesji poza procesem pozostawania uruchomionym na maszynie docelowej.

Edycja: byobu również zapisze tmux (który jest domyślny w nowszych wersjach Ubuntu). W większości przypadków nie musisz nic robić - po prostu użyje domyślnego multipleksera terminali.

Adrian
źródło
2

możesz rzucić okiem na tmux

użytkownik8868
źródło
1

Możesz mieć coś takiego z oprogramowaniem do zdalnego pulpitu, które tworzy własną sesję, na przykład FreeNX na serwerze i klient NoMachine na kliencie.

Możesz również użyć tego, gdy serwer i komputer kliencki są tym samym komputerem, aby symulować to, o co prosisz.

enzotib
źródło
1

Nie jest to możliwe bez użycia screena, byobu (jak wspomniał Adrian) lub podobnych narzędzi.

Interaktywna powłoka musi być podłączona do tty. Jeśli się wylogujesz, powłoka traci połączenie z tty i kończy działanie.

Screen i znajomi unikają tego, tworząc jeden lub więcej trwałych wirtualnych tty. Po wylogowaniu powłoka pozostaje połączona z wirtualnym terminalem i nie zauważa, że ​​użytkownik został odłączony.

W przypadku programów nieinteraktywnych tty nie jest wymagane i zamiast screena możesz użyć nohup.

Jak zauważa Adrian, domyślnie można używać byobu i, jak wiadomo, wielu zaawansowanych użytkowników zacznie screendziałać jako pierwsza rzecz, którą zrobią po zalogowaniu. Czy jest jakiś konkretny powód, dla którego chcesz uniknąć ekranu?

Jan
źródło
Uważam, że ekran jest niewygodny, ponieważ jestem przyzwyczajony do przewijania, a tryb kopiowania jest dla mnie trochę irytujący. Małe rzeczy, które znam. :)
NoSenseEtAl
0

Możesz uruchomić polecenie za pomocą nohup:

nohup command &

Jeśli chcesz mieć gdzieś zapisany wynik, zrób to

nohup command > output.txt &

Teraz musisz odłączyć działające oprogramowanie

  1. naciskając CTRL-Z
  2. wchodzić bg
  3. disown %1

Więcej wskazówek nohupmożna znaleźć na stronie podręcznika ( http://ss64.com/osx/nohup.html ), to samo dla disown( http://ss64.com/osx/disown.html ).

Sascha Biermanns
źródło