How mutual process monitoring works
Among the Agent processes, huliotservice and huliotcore perform mutual heartbeat monitoring. If huliotcore is down, huliotservice starts huliotcore. If huliotservice is down, huliotcore starts huliotservice. If one process stops, the other process starts the stopped process so that Agent is restored automatically.
(1) When processes end normally
The following figure shows the flow of mutual heartbeat monitoring between huliotservice and huliotcore when the processes end normally.

Figure 2.9 Flow when processes end normally
1. When huliotservice receives a stop instruction, huliotservice sends a stop request to huliotcore.
2. The huliotcore service that received the stop request ends. Communication between the processes is disconnected when huliotcore ends.
3. When huliotservice detects the disconnection of communication between the processes due to the huliotcore ending, huliotservice also ends.
(2) When huliotcore stops accidentally for some reason
The following figure shows the flow of mutual heartbeat monitoring between huliotservice and huliotcore when huliotcore stops.

Figure 2.10 Flow when huliotcore stops
1. The communication between the processes is disconnected when huliotcore stops.
2. When huliotservice detects that the communication between the processes is disconnected, huliotservice starts huliotcore.
(3) When huliotservice stops accidentally for some reason
The following figure shows the flow of mutual heartbeat monitoring between huliotservice and huliotcore when huliotservice stops.

Figure 2.11 Flow when huliotservice stops
1. The communication between the processes is disconnected when huliotservice stops.
2. When huliotcore detects that the communication between the processes is disconnected, huliotcore starts huliotservice and then terminates itself.
3. When huliotservice detects that the communication between the processes is disconnected, huliotservice starts huliotcore.