Google Cloud에서 SSH를 닫을 때 Java 앱을 계속 실행


12

현재 Google Cloud Compute에서 VM에 SSH로 연결하여 Java 앱을 실행하고 있습니다. 앱을 실행하라는 명령을 내리고 콘솔을로드합니다. SSH 연결을 종료하자마자 앱이 종료됩니다. 콘솔이 닫혀 있기 때문이라고 생각합니다.

SSH를 종료 한 후에도이 앱 (서버)이 유지되기를 원하며 언제든지 콘솔에 다시 연결하여 서버에서 명령을 실행할 수 있기를 원합니다.


답변:


15

당신은 이것을 진술합니다 :

SSH를 종료 한 후에도이 앱 (서버)이 유지되기를 원하며 언제든지 콘솔에 다시 연결하여 서버에서 명령을 실행할 수 있기를 원합니다.

목표가 약간 모호하지만, 나는 그것을 찌르겠습니다!

Linux 서버에서 백그라운드 프로세스로 명령을 실행하려면 명령 앞에 nohup추가 &하고 끝에 추가 해야합니다.

따라서 최종 명령은 다음과 같습니다.

nohup [your command] &

이는 nohup명령이 "hang ups"를 무시해야하며 앰퍼샌드가 &추가되면 시스템이 백그라운드 프로세스로 명령을 실행하도록 지시하는 쉘 명령입니다. 사용법에 대한 자세한 내용은 여기를 참조하십시오 .

이와 같은 명령을 실행하면 프로세스가 실행되고 명령 프롬프트로 돌아가서 터미널 세션을 종료하거나 해당 터미널 세션 중에 해당 명령과 관련이없는 다른 작업을 수행 할 수도 있습니다.


1
프로세스로 돌아가서 Java 콘솔에 명령을 입력하려면 어떻게해야합니까?
Noahb32

1
@ Noahb32 글쎄, 이것은 백그라운드 프로세스로 시작할 것이다; 나는 주로이 방법을 사용하여 프로세스를 시작한 다음 잊어 버립니다. 새로운 Java 콘솔을 시작하려면 쉘로 돌아 왔기 때문에 그렇게 할 수 있습니다. 그러나 screen시작 후 세션으로 돌아갈 수 있기 때문에 대신 사용을 조사해야 할 수도 있습니다 . 솔직히 귀하의 질문은 모호하므로 명확하게 설명하면 문제를 해결하는 데 도움이 될 수 있습니다.
JakeGould

1
감사합니다! 다른 터미널의 출력을 모니터링 할 수 있다고 덧붙이고 싶습니다 tail -f nohup.out. 동일한 작업으로 실행 하십시오. dir.
naXa

3

이 작업을 수행하는 방법에는 적어도 세 가지가 있습니다 : nohup( 'no hang up') screen/ / tmux또는 disown. 서버에 연결하고 연결을 끊은 후 데몬과 상호 작용해야한다는 질문에 대해서는 분명하지 않습니다.

이 경우입니다, 경우 nohupdisown이 과정을 떼면 (가 실행 계속하지만) 좋은 경기를하지 않습니다. tmux(및 screen)은 귀하가 언제라도 용어를 계속 운영합니다.

자세한 내용은 해당 페이지를 참조하십시오.

man nohup
man tux

Bash disown ( Bash를 실행한다고 가정하지만 다른 많은 쉘에는 비슷한 것이 포함되어 있음)


disownGoogle 클라우드 에는 명령을 사용 하지 않는 것 같습니다 . 최소한 2019 년 또는 2018 년 말에 시작한 인스턴스입니다.이 nohup명령은 정상적으로 작동하지만 원하지 않는 추가 파일을 생성합니다.
trysis

1

실행중인 쉘에서 응용 프로그램을 분리하여 쉘이 종료 된 후에도 응용 프로그램을 지속 시키려면 nohup명령을 사용하십시오 .

단순히 일반 명령을 접두사로 사용하면 정상적으로 nohup작동합니다.


0

또한 nohub이 작동하지 않으면 screen을 사용할 수 있습니다 .

 ssh into your remote box. 

type screen 그런 다음 원하는 프로세스를 시작하십시오.

Press Ctrl-A then Ctrl-D. 

그러면 화면 세션이 분리되지만 프로세스는 계속 실행됩니다. 이제 원격 박스에서 로그 아웃 할 수 있습니다.

If you want to come back later, log on again and type screen -r This will resume your screen session, and you can see the output

당신의 과정.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.