プロセス相互監視のしくみ
Agentのプロセスのうち、huliotserviceとhuliotcoreは互いに生存確認しています。huliotserviceは、huliotcoreがダウンしたとき、huliotcoreを起動します。huliotcoreは、huliotserviceがダウンしたとき、huliotserviceを起動します。一方のプロセスが停止した場合、他方のプロセスが停止したプロセスを起動するため、自動的に復旧します。
(1) 正常に終了した場合
正常終了の場合の、huliotserviceとhuliotcoreの相互生存確認の流れを次の図に示します。

図2.9 正常終了の流れ
1. huliotserviceは、停止命令を受信すると、huliotcoreに停止要求を伝えます。
2. 停止要求を受けたhuliotcoreは終了します。huliotcoreの終了によってプロセス間通信は切断されます。
3. huliotserviceは、プロセス間通信の切断によってhuliotcoreの終了を検知すると、終了します。
(2) huliotcoreが何らかの原因により停止した場合
huliotcoreが停止した場合の、huliotserviceとhuliotcoreの相互生存確認の流れを次の図に示します。

図2.10 huliotcoreが停止した場合の処理の流れ
1. huliotcoreが停止すると、プロセス間通信が切れます。
2. huliotserviceは、プロセス間通信が切れたことを検知すると、huliotcoreを起動します。
(3) huliotserviceが何らかの原因により停止した場合
huliotserviceが停止した場合の、huliotserviceとhuliotcoreの相互生存確認の流れを次の図に示します。

図2.11 huliotserviceが停止した場合の処理の流れ
1. huliotserviceが停止すると、プロセス間通信が切れます。
2. huliotcoreは、プロセス間通信が切れたことを検知すると、huliotserviceを起動して、自分は終了します。
3. huliotserviceは、プロセス間通信が切れていることを検知し、huliotcoreを起動します。