diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2018-05-20 10:53:30 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2018-05-20 10:53:30 +0300 |
commit | ddb46c6aa42ada061e51c635c0230e4dc8eab881 (patch) | |
tree | b003ae6af354f553207981b4fc281e8f9e19c60e /src/genrc.h | |
parent | ed8389beadb7cf1f8d95fe7addbc9ff2783f4d07 (diff) | |
download | genrc-ddb46c6aa42ada061e51c635c0230e4dc8eab881.tar.gz genrc-ddb46c6aa42ada061e51c635c0230e4dc8eab881.tar.bz2 |
Sentinel mode: restart the program on certain conditions
* Makefile.am: Create the ChangeLog file from git log.
* configure.ac: 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')
-rw-r--r-- | src/genrc.h | 10 |
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); | |||
63 | int pid_is_running(pid_t pid); | 63 | int pid_is_running(pid_t pid); |
64 | 64 | ||
65 | void runas(void); | 65 | void runas(void); |
66 | int str_to_sig(char const *); | ||
67 | int str_to_int(char const *); | ||
68 | |||
66 | 69 | ||
67 | enum { | 70 | enum { |
68 | MATCH_REGEX, /* extended POSIX regexp match (default) */ | 71 | MATCH_REGEX, /* extended POSIX regexp match (default) */ |
@@ -109,7 +112,14 @@ void match_pcre_free(PROCSCANBUF buf); | |||
109 | int match_pcre(PROCSCANBUF buf, char const *arg); | 112 | int match_pcre(PROCSCANBUF buf, char const *arg); |
110 | 113 | ||
111 | 114 | ||
115 | enum { | ||
116 | RESTART_ON_EXIT, | ||
117 | RESTART_ON_SIGNAL | ||
118 | }; | ||
112 | 119 | ||
120 | void add_restart_condition(int type, char const *arg); | ||
121 | |||
122 | |||
113 | struct genrc_pid_closure { | 123 | struct genrc_pid_closure { |
114 | char const *name; | 124 | char const *name; |
115 | int (*pid)(struct genrc_pid_closure *, PIDLIST *); | 125 | int (*pid)(struct genrc_pid_closure *, PIDLIST *); |