コンテンツにスキップ
JelinaJelina Documentation技術ドキュメント
公式サイトに戻る

ネイティブアプリケーションと ProgramSet

産業現場には、収集スクリプト、プロトコル変換デーモン、サードパーティーのバイナリなど、従来の方式で動作するプログラムが数多くあります。以前は個別に手動起動し、障害に気付けないこともありました。JelinaOS はこれらを **ProgramSet(プログラムセット)**という統一された宣言的管理体系に組み込み、設定による管理、異常時の自己復旧、システム起動時の自動起動を実現します。

ProgramSet は非コンテナアプリケーションの集合です。各アプリケーションは、次の内容を宣言的な設定で記述します。

  • 起動方法:コマンド、作業ディレクトリ、実行ユーザー。
  • プログラムの取得元:リリース設定に記載したダウンロード先からパッケージを取得。
  • 動作ポリシー:再起動ポリシー、環境変数、停止シグナル。
  • 依存関係:起動順序、排他関係、必須・任意の依存。
  • 稼働保護:再起動制限、終了後の状態維持、実行前後のコマンド。

設定後はシステムが一元管理するため、起動スクリプトを手動で作成する必要はありません。

ProgramSet はクラウドまたはローカル管理インターフェースで設定し、デバイスエージェントが実行します。

設定方法 用途 説明
クラウドのリリース(推奨) JelinaCloud に接続する環境 Release 作成時に ProgramSet を宣言し、リリースとともにデバイスへ一括配信
ローカル管理インターフェース ローカル/分離環境 デバイスのローカルインターフェースから目標設定を送信

以下はクラウドのリリースにおける ProgramSet の宣言例です。パッケージはダウンロード先から配信します。

programs:
collector:
uri: http://files.example.com/collector/collector.tar.gz # プログラムパッケージのダウンロード URL
command: collector --config /data/collector.conf
running: true
restart: always
environment:
SITE_ID: plant-01
working_directory: /opt/collector
user: root
  • command:起動コマンド。必須です。
  • running:実行するかどうか。デフォルトは true。
  • restart:再起動ポリシー。always は異常終了後の自動再起動を意味します。
  • environment:環境変数。
  • working_directory:作業ディレクトリ。
設定 説明
uri プログラムパッケージのダウンロード先
command 起動コマンド(必須)
running 実行するかどうか。デフォルトは true
restart 再起動ポリシー:no / on-failure / always など
environment 環境変数
working_directory 作業ディレクトリ
user / group 実行ユーザー/グループ
after / before、wants / requires、conflicts 依存関係と順序
start_limit_*、remain_after_exit、exec_start_* など 稼働保護と復旧動作

全フィールドは docker-compose の互換性と拡張を参照してください。

高度な設定:自動起動と条件確認

Section titled “高度な設定:自動起動と条件確認”
programs:
myapp:
command: run.sh
restart: always
Install:
WantedBy: multi-user.target # 起動時に自動実行
Unit:
ConditionPathExists: /data/app/config.json # 条件確認:設定ファイルが存在する場合にのみ起動

ProgramSet のアプリケーションはエージェントが一元管理し、システムサービスとして実行します。確認や操作に使用するサービス名は、システムの命名規則に従います。実際の名前はデバイス状態コマンドで確認できます。

Terminal window
systemctl status <プログラムのサービス名> # 状態を確認(サービス名はデバイス上の表示に従う)
systemctl restart <プログラムのサービス名> # 再起動
systemctl stop <プログラムのサービス名> # 停止
  • 従来の産業用プログラム:収集、制御、通信デーモンの管理を近代化。
  • スクリプトとツールチェーン:一時的なスクリプトを正式な管理下に置き、異常時に自己復旧。
  • 混在構成:コンテナと同じオーケストレーション体系で連携。

コンテナアプリケーションとの使い分け

Section titled “コンテナアプリケーションとの使い分け”
要件 推奨
ハードウェアへの直接アクセス、高いリアルタイム性 ネイティブアプリケーション(ProgramSet)
既存プログラムを活用し、移行コストを抑えたい ネイティブアプリケーション(ProgramSet)
複数言語・多数の依存要素があり、環境分離が必要 コンテナアプリケーション
最新のマイクロサービス構成、迅速な反復開発 コンテナアプリケーション