Mam to samo pytanie co tutaj, ale nawet poza tym.
Jeśli wyloguję się / zakończę połączenie SSH, muszę, aby mój program działał w tle. Przed wyjściem wpisuję bg
i jobs
sprawdzam zadanie uruchamiania w tle, ale po wyjściu z SSH program nie działa, zamyka się, kiedy zamykam okno SSH.
Co mogę zrobić, jeśli chcę, aby mój program nadal działał po zamknięciu okna SSH? Używam, nohup
screen
ale to też nie działa, czy coś mi brakuje?
<br/>
s do swojego postu. Po prostu rób akapity, jeśli to konieczne. A gdy już to robisz, używaj odpowiedniejbg
aninohup
podczas korzystaniascreen
. Również to pytanie jest powiązane.Odpowiedzi:
Kiedy używasz
screen
, musisz odłączyć za pomocą CTRL+A+ Dprzed wyjściemssh
.Alternatywnie, jeśli chcesz uruchomić proces bezpośrednio z ekranem, możesz użyć
-d
rozpoczyna sesję ekranową i natychmiast się od niej odłącza-m
wymusza utworzenie nowej sesji ekranowej-S
pozwala nadać sesji nazwę-L
włącza logowanie do~/screenlog.0
przykład:
Następnie możesz:
wznowić później używając
screen -x workstuff
lub
sprawdź plik dziennika
less -r ~/screenlog.0
źródło
Zastosowanie
tmux
. Nie jestem nawet pewien, czyscreen
jest jeszcze w trakcie aktywnego rozwoju. To rodzaj preferencji, ale jako ktoś, kto używatmux
, mogę zaświadczyć, że został skonfigurowany w około 5 minut i działał idealnie.W systemie opartym na Debianie (na zdalnym komputerze):
sudo apt-get install tmux
następnie wejdź,
tmux
aby wejść, uruchom dowolny potrzebny proces i naciśnij Ctrl+ Bwtedy D(to kończy sesję tmux). Następnie możesz wylogować się z SSH.Gdy musisz wrócić / sprawdzić ponownie, uruchom SSH i wpisz
tmux attach
. Zabierze Cię z powrotem dotmux
sesji.tmux
ma o wiele więcej możliwości, jak wyszczególniono tutaj. Ale to powinno rozwiązać twój bezpośredni problem.Powodzenia!
źródło
W końcu rozwiązałem to za pomocą
screen
:W trybie ekranu odłącz go, używając CtrlAD. Następnie możesz zamknąć okno SSH.
źródło
nohup use: Pierwsze z poniższych poleceń uruchamia program abcd w tle w taki sposób, że kolejne wylogowanie go nie zatrzymuje.
źródło