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.