アプリケーションライフサイクル

アプリケーションライフサイクルは、ユーザーアプリケーションがどのようにインストール、更新、削除されるのかを定義します。

アプリケーションライフサイクルはsystemdisaax-agentが生成するユーザーアプリケーション向けのsystemdユニットファイルによって管理されます。

ユーザーアプリケーションのインストール

デバイスにユーザーアプリケーションをインストールするために、プロジェクトにデバイスをあらかじめ登録する必要があります。デバイスの登録方法についてはIsaaxのプロジェクトに関するページを確認してください。

アプリケーションのインストール前処理

isaax-agentはユーザーアプリケーションをインストール前に、ユーザーが作成できるpre-installスクリプトを実行します。こちらは主にデバイスに必要な初期化は設定に使われます。

アプリケーションの実行前処理

Isaax Agentはsystemctlコマンド経由でユーザーアプリケーションを起動します。

ユーザーアプリケーションのインストールは素早く行われますが、それをブロックする要素がいくつかあります。

  • pre-installスクリプト

    もしNode.jsやRubyといったパッケージをpre-installスクリプトでインストールする場合、その作業に数分かかります。適当なタイムアウトを設定することで、実行時間がかかりすぎているスクリプトを途中で止めることができます。スクリプトの設定方法についての情報はスクリプトサービスのページを確認してください。

  • アプリケーションサイズ

    アプリケーションの容量やネットワークの帯域もデバイスへのダウンロード時間に影響を与えます。

アプリケーションの更新

git pushコマンドを実行することで、isaax-agentは新たなアプリケーションの新たなリビジョンがあるという通知を受け、アプリケーションの更新処理を実行します。

アプリケーションの更新前後におこなわれる処理

アプリケーションを更新する際に、isaax-agentは2つのスクリプトを実行します。(これらはpre-installスクリプトと似ています):

  1. pre-updateスクリプトはアプリケーションの更新前に実行されます。
  2. post-updateスクリプトはアプリケーションの更新完了後に実行されます。

ユーザーアプリケーションのインストール時と同様に、アップデートの更新速度は上記2つのスクリプトの実行時間と、ネットワーク帯域及びアプリケーション容量によるダウンロード時間が影響します。

アプリケーションの削除

ユーザーアプリケーションの停止および削除はisaax-agentによって行われます。

これらの作業を行うにはデバイスにSSHなどでログインし、エージェントのプログラムが存在する/opt/isaax-agent/に移動し、isaax-agentのコマンドを実行します。

注意: これらのコマンドを実行するにはroot権限が必要になります。

isaax-agentとユーザーアプリケーションを停止するには下記のコマンドを実行します。

./isaax-agent stop

isaax-agentとユーザーアプリケーションを削除するには下記のコマンドを実行します。

./isaax-agent remove