Chcę zakończyć instancję GNU, screen
jednocześnie zachowując przebiegający w niej proces.
Otworzyłem więc mój zwykły program emulujący terminal i wykonałem ekran. Następnie użyłem tego wystąpienia screen
do wykonania ./script_x.sh
. Teraz, z jakiegokolwiek powodu, chcę rzucić używanie, screen
jednak script_x.sh
jeszcze nie wykonałem tego zadania i nie chcę stracić mojego postępu.
Czy mogę utrzymać aktywny proces, aby kontynuować pracę w moim emulatorze terminali?
screen
sesji.screen
. Chciałem przestać używaćscreen
. Nie chciałem zatrzymywać uruchomionego programuscreen
. to jest to! Nie wiem, jak wyjaśnić sytuację lub wyrazić ją w prostszy sposób.Odpowiedzi:
TLDR: Praktyczna odpowiedź: nie.
Dłuższa odpowiedź:
Teoretycznie możesz. Jeśli uruchomiłeś coś
nohup myprog &
z poziomu ekranu, będzie on kontynuował działanie. Zignoruje sygnał zawieszenia i nie będzie miał żadnych danych wejściowych, ale w teorii możesz kontynuować pracę z nim.W praktyce tak nie jest. Zatem jeśli nie chcesz dołączyć debugera do uruchomionego procesu i przepisać jego uchwyty plików i upewnić się, że proces obsługuje sygnały -1 po zamknięciu ekranu ... odpowiedź brzmi: nie.
Jeśli jesteś gotów to zrobić, mam zakładkę w domu, wskazując [SU], gdzie ktoś właśnie to zrobił . Uratowany z powodu niesamowitości, nie dlatego, że jest to łatwe i trywialne.
źródło
disown
lub na niższym poziomie), aby nieSIGHUP
były wysyłane, gdy proces nadrzędny umiera. Ponowne podłączanie we / wy to zupełnie inna sprawa - właśnie tam pojawia się debugger.nohup
, jeśli jesteś w powłoce sterowania robota (jakbash
,ksh
,csh
,zsh
,ash
, itd.). Jeśli nadal używasz powłoki kontrolnej innej niż zadanie, takiej jak Bourne,sh
być może nadszedł czas na aktualizację.Możesz spróbować
reptyr
ponownie podłączyć już działającą aplikację do innego terminala. Ma jednak pewne problemy z wysyłaniem procesu do tła.Właśnie go przetestowałem (zacznij w
htop
środkuscreen
,reptyr
przejdź do innego terminalu, zabijscreen
) i wydawało się, że działa dobrze. Nadal jest to naprawdę hacking rozwiązanie, więc nie ma gwarancji.źródło
Tak (jeśli „zabijanie” nie jest tak naprawdę zabijaniem), to właśnie do tego służy ekran. Powinieneś sprawdzić instrukcję i wypróbować, który z nich pasuje do twoich potrzeb:
Następnie potrzebujesz opcji wiersza poleceń -D / -d -R / -r ekranu, w zależności od twojego wyboru.
źródło