Google Cloud에서 SSH를 닫을 때 Java 앱을 계속 실행 Java 앱을 실행하고 있습니다.

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

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



답변

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

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

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

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

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

nohup [your command] &

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

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


답변

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

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

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

man nohup
man tux

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


답변

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

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


답변

또한 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

당신의 과정.