Add optional feature to notify status to systemd

When enabled, the feature uses libsystemd to notify service manager
about the following states:
- ready
- periodic alive ping (20s)
- stopping

It allows to use Cage in a systemd unit with following options:
Type=notify
WatchdogSec=30s
This commit is contained in:
Jonathan GUILLOT 2025-09-10 22:36:28 +02:00
parent 2e593fe5a8
commit a500d11f0f
7 changed files with 86 additions and 0 deletions

24
notify.h Normal file
View file

@ -0,0 +1,24 @@
#ifndef CG_NOTIFY_H
#define CG_NOTIFY_H
#include "config.h"
#define CAGE_ALIVE_PERIOD_MS (20000)
enum cg_notify_state {
CAGE_READY,
CAGE_ALIVE,
CAGE_STOPPING,
};
#if !CAGE_HAS_SYSTEMD
static inline void
notify_set_state(enum cg_notify_state state)
{
/* Nothing */
}
#else
void notify_set_state(enum cg_notify_state state);
#endif
#endif