![gcloud ssh를 사용하여 백그라운드에서 프로세스를 실행하는 방법 [닫기]](https://linux55.com/image/138298/gcloud%20ssh%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%B0%B1%EA%B7%B8%EB%9D%BC%EC%9A%B4%EB%93%9C%EC%97%90%EC%84%9C%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EB%A5%BC%20%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
두 개의 gcp Linux 가상 머신이 있고 한 인스턴스에서 다른 인스턴스로 sshing하고 다음 명령을 사용하여 프로세스를 실행하고 있습니다. 명령 #1을 실행할 때는 제대로 작동하지만 백그라운드 명령 #2의 옵션을 사용할 때 프로세스를 실행할 때, 명령은 결과를 표시하지 않습니다.
gcloud compute ssh -zone {Zone-Name} {vm1} -- 'cd /app/bin && ./clearcache && nohup ./startWeblogicAdmin >> admin.log' ==== This works fine
gcloud compute ssh -zone {Zone-Name} {vm2} -- 'cd /app/bin && ./clearcache && nohup ./startWeblogicAdmin >> admin.log &' === This does not gets executed.
백그라운드에서 프로세스를 시작하는 방법이 필요합니다. VM2에서 이 SSH 세션에서 로그아웃하는 경우
답변1
gcp linux에 대해 잘 모르기 때문에 쉘이 "&"를 사용하여 백그라운드에서 명령을 실행하기 때문에 두 번째 예가 작동하지 않는 것 같습니다. 그러나 명령을 지정하면 ssh는 쉘을 시작하지 않고 명령을 실행한 다음 종료됩니다.
따라서 내 가정이 맞다면 원격 시스템에 로그인하여 원하는 채팅 언어와 같은 것을 사용하여 명령을 실행하거나 전체 명령을 로컬 시스템의 백그라운드로 보내야 합니다. 이 같은:
nohup gcloud compute ssh -zone {Zone-Name} {vm2} -- 'cd /app/bin && ./clearcache && nohup ./startWeblogicAdmin >> admin.log' &