Skip to content

Add greengrass-healthy.target for systemd integration #997

@thomas-roos

Description

@thomas-roos

Is your feature request related to a problem?

Currently, application services must individually check multiple dependencies (Greengrass Nucleus Lite, network connectivity, hardware watchdog, A/B bank status) before starting. This leads to duplicated health check logic, race conditions during boot, and inconsistent startup behavior across services.

Describe the solution you'd like

Add a standardized greengrass-healthy.target that aggregates all system health checks into a single systemd dependency point.

Implementation:
systemd

/etc/systemd/system/greengrass-healthy.target

[Unit]
Description=Greengrass System Healthy
BindsTo=greengrass-nucleus-lite.service greengrass-health-check.service
After=greengrass-nucleus-lite.service greengrass-health-check.service network-online.target
Wants=network-online.target

[Install]
WantedBy=multi-user.target

Usage:
systemd

Application services depend on the target

[Unit]
After=greengrass-healthy.target
Wants=greengrass-healthy.target

Benefits

  • Zero runtime overhead (no persistent monitoring process)
  • Native systemd integration with built-in dependency resolution
  • Reactive health status - target becomes inactive if bound services fail
  • Simplified service definitions - single dependency instead of multiple checks
  • Easy debugging with systemctl status greengrass-healthy.target

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions