mirror of
https://github.com/troglobit/finit.git
synced 2026-10-15 10:29:35 +00:00
Add total restart counter for service & sysv daemons
This patch adds a recent feature request to keep track of the total number of restarts (including crashes and initctl restart) of both service and sysv daemons. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
1 parent
823bb82b8c
commit
95995a45cf
3 files changed
+8
-1
No files matched your search
+1
-1
@@ -756,7 +756,7 @@ static int show_status(char *arg)
|
||||
printf(" User : %s\n", svc->username);
|
||||
printf(" Group : %s\n", svc->group);
|
||||
printf(" Uptime : %s\n", svc->pid ? uptime(now - svc->start_time, uptm, sizeof(uptm)) : uptm);
|
||||
printf(" Restarts : %d/%d\n", svc->restart_cnt, svc->restart_max);
|
||||
printf(" Restarts : %d (%d/%d)\n", svc->restart_tot, svc->restart_cnt, svc->restart_max);
|
||||
printf(" Runlevels : %s\n", runlevel_string(runlevel, svc->runlevels));
|
||||
if (cgrp && svc->pid > 1) {
|
||||
char grbuf[128];
|
||||
|
||||
@@ -496,6 +496,12 @@ static int service_start(svc_t *svc)
|
||||
/* Declare we're waiting for svc to create its pidfile */
|
||||
svc_starting(svc);
|
||||
|
||||
/* Increment total restarts, unless first time or non-service */
|
||||
if (svc_is_daemon(svc) || svc_is_sysv(svc)) {
|
||||
if (svc->restart_cnt || svc->restart_tot)
|
||||
svc->restart_tot++;
|
||||
}
|
||||
|
||||
/* Block SIGCHLD while forking. */
|
||||
sigemptyset(&nmask);
|
||||
sigaddset(&nmask, SIGCHLD);
|
||||
|
||||
@@ -137,6 +137,7 @@ typedef struct svc {
|
||||
|
||||
/* Counters */
|
||||
char once; /* run/task, (at least) once per runlevel */
|
||||
unsigned int restart_tot; /* Total restarts ever, summarized, including `initctl restart` */
|
||||
unsigned char restart_max; /* Maximum number of restarts allowed */
|
||||
int restart_tmo; /* Time required for the service to start. */
|
||||
unsigned char oncrash_action; /* Action to perform in crashed state. */
|
||||
|
||||
Reference in new issue
Block a user