alive Module
Table of contents
Introduction
The alive module provides a heartbeat-based system for monitoring whether EPICS IOCs are running. It consists of a custom EPICS record type – the alive record – that sends periodic UDP heartbeat messages to a central server and responds to TCP information requests.
The system has two main components:
- alive record – Runs inside each IOC. Sends UDP heartbeats to a configured server and listens for TCP queries about environment variables and system information.
- alive server – A separate program (outside of EPICS) that collects heartbeats, tracks IOC status, and queries IOCs for additional information. The alive server design page describes how a server should process the data. The author’s server implementation, alived, can be found here.
The alive module is not useful on its own, as it needs a remote server to send heartbeat information.
Key design characteristics:
- IOCs self-report to the server; the server doesn’t need to know which IOCs to monitor in advance.
- Heartbeats are simple UDP packets, avoiding EPICS subnet boundary issues.
- The server queries IOC information over TCP, keeping the server independent of EPICS libraries.
- The message protocol is documented for server implementers.
See the User Guide for database files, build instructions, display files, and troubleshooting.