2017-08-11 17 views
1

私は現在、SpringブートでREST APIを開発中です。 Googleのクラウド(コンピューティングエンジン)に導入したい。 私は仮想Linuxマシンを作成し、Java 8をインストールし、その中に私の春の起動アプリケーションを入れました。 それはうまく動作しますが、 私のアプリケーションはjarファイル(埋め込みTomcat)です。私はこれで起動しました: java -jar myApp.jar それはうまくいきます。 しかし、私はGoogleクラウド上のシェルを閉じると、私のアプリケーションはもはや利用できません。 シェルを終了するたびに起動しなくても、私のアプリケーションをいつでも利用できるようにしたいと思います。出来ますか ?仮想マシンを使用する場合はSpringブートとクラウドのデプロイ

image of cloud shell

答えて

0

これは同じUnix Threadの問題です。

あなたのプロセスがターミナルにリンクされているということです。それを閉じると、プロセスは強制終了されます。私はthis answerを引用した場合:それは標準入力をクローズ

  • (プログラムが読み取ることができなくなります

    を何nohupは、他の一方で、効果的に端末から プロセスを分離することであるんany>入力がフォアグラウンドで実行されても停止されませんが、 はエラーコードまたはEOFを受け取ります。

  • 標準出力と標準エラーをnohup.outファイルにリダイレクトします。したがって、端末が失敗した場合、プログラムは標準出力への書き込みに失敗しません。したがって、プロセスが書き込むものはすべて失われません。
  • これは、プロセスがSIGHUP(したがって名前)を受け取るのを防ぎます。だから、

nohup java -jar myApp.jar & 
+0

感謝をしてみてください。今すぐあなたのコマンドでうまく動作します。 – AntonBoarf

+0

@AntonBoarfあなたが必要とする解決策であれば、この回答に合格とマークしてください。 – Akah

0

、あなたは、javaの-jarコマンドを実行する(WindowsまたはLinuxでのshでバット)スクリプトを使用することができます(計算エンジンをグーグル)が、あなたも、コンテナのエンジンを使用することができますあなたのアプリでドッカーコンテナを作成します。ドッカーファイルを設定してデプロイします。コンテナ環境では自動的にアプリが実行されます

関連する問題