Obecnie uruchamiam aplikację Java przez SSH-ing na maszynie wirtualnej w Google Cloud Compute. Wydaję polecenie, aby uruchomić aplikację i ładuje konsolę. Gdy tylko zakończę połączenie SSH, aplikacja zostanie wyłączona. Zakładam, że dzieje się tak, ponieważ konsola została zamknięta.
Chciałbym, aby ta aplikacja (która jest serwerem) utrzymywała się po zakończeniu SSH, i w dowolnym momencie chciałbym móc ponownie połączyć się z konsolą i wydawać polecenia na serwerze.
Odpowiedzi:
Stwierdzasz to:
Nieco nieprecyzyjne cele, ale zrobię to nożem!
Aby uruchomić dowolną komendę jako proces działający w tle na serwerze Linux, należy wcześniej wstawić komendę
nohup
i dopisać&
do końca.Zatem ostatecznym poleceniem byłoby:
Te
nohup
środki powinny ignorować polecenia „hang ups” i znaku handlowego&
dołączone do niego jest polecenie powłoki, który informuje system, aby uruchomić polecenie jako proces w tle. Więcej informacji na temat jego wykorzystania można znaleźć tutaj .Gdy uruchomisz takie polecenie, proces się uruchomi, zostaniesz odesłany z powrotem do wiersza polecenia i możesz wyjść z sesji terminalu lub nawet przejść i zrobić coś innego, niezwiązanego z tym poleceniem podczas tej sesji terminalu.
źródło
screen
zamiast tego, ponieważ pozwala ci wrócić do sesji po uruchomieniu. Szczerze mówiąc, twoje pytanie jest bardzo niejasne, więc jeśli możesz je wyjaśnić, może to pomóc w wyjaśnieniu.tail -f nohup.out
tę samą pracę. reż.Istnieją co najmniej trzy sposoby:
nohup
(„bez rozłączania się”),screen
/tmux
lubdisown
. Pytanie, które musisz połączyć z serwerem i wejść w interakcję z demonem po rozłączeniu, jest trochę niejasne.Jeśli tak jest,
nohup
idisown
nie będzie to dobre dopasowanie, gdy zwalniasz proces (chociaż nadal działa).tmux
(a takżescreen
) utrzyma termin, nawet jeśli ty.Aby uzyskać więcej informacji, zobacz odpowiednie strony:
Bash disown (zakładając, że używasz Bash, chociaż wiele innych powłok zawiera coś podobnego)
źródło
disown
w Google Cloud nie ma polecenia, przynajmniej instancja, której używam, rozpoczęła się w 2019 lub pod koniec 2018 roku.nohup
Polecenie działa dobrze, ale tworzy dodatkowy plik, który może nie być potrzebny.Aby odłączyć aplikację od działającej powłoki, sprawiając, że będzie ona utrzymywać się po zamknięciu powłoki, użyj
nohup
polecenia.Po prostu poprzedza się normalnym poleceniem
nohup
i powinno ono działać.źródło
Również jeśli nohub nie działa, możesz użyć screena :
z
źródło