2016-07-05 1 views
2

スタートアップスクリプトを使用して30分かかるVM計算エンジンでVMインスタンスを作成する必要がありますが、終了することはなく、インスタンスが起動してから約10分後に停止します。タイムアウトはありますか?私がしなければならないことを達成する別の選択肢がありますか?ありがとう!起動スクリプトが終了するまでの時間制限はありますか?

+0

スタートアップスクリプトの処理に30分かかりますか?ソフトウェアをダウンロード/インストール/設定しますか?あなたは、Chef、Ansible、Puppet、Saltなどのツールを使って、VM起動後にそれを実行できますか?起動時だけでなく、実行中のライブVMの更新/再設定にも役立ちます。または、[Packer](https://www.packer.io/)を使用してカスタムVMイメージを事前作成することもできます。 –

+0

@MishaBrukmanスクリプトは別のスクリプトをダウンロードして実行しますが、スクリプトは大きなファイルをダウンロードし、緯度/経度に基づいていくつかの値を計算します。そして、処理が終了すると、VMは破壊される。私はこのプロセスをデジタル海洋で問題なく動作させました。 –

答えて

2

コメント欄に追加の明確化を考える:

を私のスクリプトが別のスクリプトをダウンロードし、それを実行し、どのようなそのスクリプトが行うことはいくつかの大きなファイルをダウンロードして、緯度/経度に基づいていくつかの値を計算しています。そして、処理が終了すると、VMは破壊される。

大規模なダウンロードを実行し、同期処理ではなく非同期で処理することをお勧めします。その理由は、同期している場合、VM起動(クリティカルパス内)の一部であり、VMモニタリングインフラストラクチャはVMが適切な時間内に起動フェーズを完了していないことを認識し、終了していることに気付きます。

代わりに、重大な処理をクリティカルパスから取り出して、バックグラウンドで、つまり非同期で実行します。私はこれを変換することをお勧め

# Download the external script 
curl [...] -o /tmp/script.sh 

# Run the file download, computation, etc. and shut down the VM. 
/tmp/script.sh 

:つまり

、起動スクリプトは、現在、おそらくのようになります。これは何

# Download the external script 
curl [...] -o /tmp/script.sh 

# Run the file download, computation, etc. and shut down the VM. 
nohup /tmp/script.sh & 

バックグラウンドで重い処理を開始しているが、親プロセス(実際の起動スクリプト)が終了したときに自動的に終了しないように親プロセスから切断します。メインの起動スクリプトを終了して、VMの起動フェーズの完了を完了とマークします。

詳細については、Wikipedia page on nohupを参照してください。

+0

ありがとう!私はこの解決策を試し、あなたに知らせるでしょう –