path: root/src/genrc.h
authorSergey Poznyakoff <>2018-05-20 07:53:30 (GMT)
committer Sergey Poznyakoff <>2018-05-20 07:53:30 (GMT)
commitddb46c6aa42ada061e51c635c0230e4dc8eab881 (patch) (side-by-side diff)
treeb003ae6af354f553207981b4fc281e8f9e19c60e /src/genrc.h
parented8389beadb7cf1f8d95fe7addbc9ff2783f4d07 (diff)
Sentinel mode: restart the program on certain conditions
* Create the ChangeLog file from git log. * Request git2chg * src/com_start.c: Use sigaction instead of signal. * src/genrc.8: Document new options. * src/genrc.c: New options --restart-on-exit and --restart-on-signal. * src/genrc.h (str_to_sig, str_to_int): New prototypes. (add_restart_condition): New prototype. * src/sentinel.c (restart_on, add_restart_condition): (check_failure_rate): New functions. (wait_loop): Return if restart is requested. (sentinel): Restart the program if needed.
Diffstat (limited to 'src/genrc.h') (more/less context) (ignore whitespace changes)
1 files changed, 10 insertions, 0 deletions
diff --git a/src/genrc.h b/src/genrc.h
index 9842016..c6ee57b 100644
--- a/src/genrc.h
+++ b/src/genrc.h
@@ -63,6 +63,9 @@ pid_t strtopid(char const *str);
int pid_is_running(pid_t pid);
void runas(void);
+int str_to_sig(char const *);
+int str_to_int(char const *);
enum {
MATCH_REGEX, /* extended POSIX regexp match (default) */
@@ -109,7 +112,14 @@ void match_pcre_free(PROCSCANBUF buf);
int match_pcre(PROCSCANBUF buf, char const *arg);
+enum {
+void add_restart_condition(int type, char const *arg);
struct genrc_pid_closure {
char const *name;
int (*pid)(struct genrc_pid_closure *, PIDLIST *);

Return to:

Send suggestions and report system problems to the System administrator.