mirror of
https://github.com/troglobit/finit.git
synced 2026-10-31 13:00:32 +00:00
Fix #310: service restart delay not working
Always use the configured restart delay for crashing services. If no delay is configured, we default to an initial 2000 msec for forking daemons and start-stop scripts, and 1 msec for non-forking daemons. We must track the increasing delay in the svc_t because processes can fail quickly in differing ways. E.g, the test daemon 'serv' behaves extra evil by crashing right after having created its pidile (i.e., when it's signaled to Finit it is 'ready' and all is dandy ...). If we don't track the delay per svc_t we would restart 'serv' after only 1 msec every (other) time. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
1 parent
383339dc4a
commit
a61c2ceb79
2 files changed
+25
-14
No files matched your search
@@ -143,7 +143,8 @@ typedef struct svc {
|
||||
char once; /* run/task, (at least) once per runlevel */
|
||||
unsigned int restart_tot; /* Total restarts ever, summarized, including `initctl restart` */
|
||||
int restart_max; /* Maximum number of restarts allowed */
|
||||
int restart_tmo; /* Time required for the service to start. */
|
||||
int restart_saved; /* INTERNAL, saved copy of .conf value */
|
||||
int restart_tmo; /* Time before restarting a crashing service */
|
||||
unsigned char oncrash_action; /* Action to perform in crashed state. */
|
||||
char respawn; /* ttys, or services with `respawn`, never increment restart_cnt */
|
||||
const char restart_cnt; /* Incremented for each restart by service monitor. */
|
||||
|
||||
Reference in new issue
Block a user