-
Notifications
You must be signed in to change notification settings - Fork 23
Description
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