Webアプリケーションを更新するスクリプトがあります。Webアプリケーションは2つのサーバーに分散しています。スクリプトの概要は次のとおりです
- シェルスクリプトはgitリポジトリを更新します。
- シェルスクリプトはアプリケーションサーバーを停止します。
- シェルスクリプトはWebサーバーを停止します。
- シェルスクリプトは、最新のgitアップデートをチェックアウトするようにアプリケーションサーバーに指示します。
- シェルスクリプトは、最新のgitアップデートをチェックアウトするようにWebサーバーに指示します。
- シェルスクリプトは、アプリケーションサーバーを起動します。
- シェルスクリプトはWebサーバーを起動します。
7つのステップのそれぞれは、同期して次々に実行されます。合計実行時間は約9秒です。ただし、ダウンタイムを減らすために、これらの手順の多くは非同期で実行できます。
たとえば、ステップ4と5を同時に実行できます。手順4と5を非同期で開始したいのですが(バックグラウンドで実行するなど)、両方が完了するまで待ってから先に進む方法がわかりません。