mirror of
https://github.com/troglobit/finit.git
synced 2026-10-23 11:44:37 +00:00
Fix #300: add ready:script for services, called when daemon is ready
In Finit a daemon can signal its readiness by creating/touching its PID file. An ancient UNIX concept -- a daemon creates its PID file when it has set up signal handlers and is ready to receive IPC (signals), right before entering its while(1) loop. Finit took the concept a bit further, adding readiness signalling also to daemon's by touching their PID file after having processed a SIGHUP. For both these conditions Finit now supports a ready:script, called when readiness is detected. In later commits support for s6 and systemd style readiness notification will be added that will hook the mechanism implemented in this commit as well. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
1 parent
0ae5071f94
commit
abcb3ceb67
4 files changed
+55
-1
No files matched your search
@@ -183,6 +183,7 @@ typedef struct svc {
|
||||
char env[MAX_ARG_LEN];
|
||||
char pre_script[MAX_ARG_LEN];
|
||||
char post_script[MAX_ARG_LEN];
|
||||
char ready_script[MAX_ARG_LEN];
|
||||
|
||||
/*
|
||||
* Used to forcefully kill services that won't shutdown on
|
||||
@@ -239,6 +240,7 @@ static inline int svc_nohup (svc_t *svc) { return svc && (0 == svc->sigh
|
||||
static inline int svc_has_pidfile (svc_t *svc) { return svc_is_daemon(svc) && svc->pidfile[0] != 0 && svc->pidfile[0] != '!'; }
|
||||
static inline int svc_has_pre (svc_t *svc) { return svc->pre_script[0]; }
|
||||
static inline int svc_has_post (svc_t *svc) { return svc->post_script[0]; }
|
||||
static inline int svc_has_ready (svc_t *svc) { return svc->ready_script[0];}
|
||||
|
||||
static inline void svc_starting (svc_t *svc) { if (svc) svc->starting = 1; }
|
||||
static inline void svc_started (svc_t *svc) { if (svc) svc->starting = 0; }
|
||||
|
||||
Reference in new issue
Block a user