aboutsummaryrefslogtreecommitdiff
path: root/src/rc
diff options
context:
space:
mode:
authorWilliam Hubbs <w.d.hubbs@gmail.com>2017-05-12 17:14:56 -0500
committerWilliam Hubbs <w.d.hubbs@gmail.com>2017-05-12 17:15:55 -0500
commitcbf96967f1b6dc72ae16203dfbbb844bd08e8b6b (patch)
treeb312e8b3b7714a9eced78745782a55e25ea63be1 /src/rc
parentf1013037b47cdd6344f1b3ed92b7f84d7fcca01f (diff)
supervise-daemon: save start time and respawn count before dropping privs
Diffstat (limited to 'src/rc')
-rw-r--r--src/rc/supervise-daemon.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/rc/supervise-daemon.c b/src/rc/supervise-daemon.c
index f3335fa2..dc6d6c12 100644
--- a/src/rc/supervise-daemon.c
+++ b/src/rc/supervise-daemon.c
@@ -196,6 +196,14 @@ static void child_process(char *exec, char **argv, char *svcname,
setsid();
+ if (svcname) {
+start_time = time(NULL);
+from_time_t(start_time_string, start_time);
+ rc_service_value_set(svcname, "start_time", start_time_string);
+sprintf(start_count_string, "%i", start_count);
+ rc_service_value_set(svcname, "start_count", start_count_string);
+ }
+
if (nicelevel) {
if (setpriority(PRIO_PROCESS, getpid(), nicelevel) == -1)
eerrorx("%s: setpriority %d: %s", applet, nicelevel,
@@ -342,13 +350,6 @@ static void child_process(char *exec, char **argv, char *svcname,
c++;
}
syslog(LOG_INFO, "Running command line: %s", cmdline);
- if (svcname) {
-start_time = time(NULL);
-from_time_t(start_time_string, start_time);
- rc_service_value_set(svcname, "start_time", start_time_string);
-sprintf(start_count_string, "%i", start_count);
- rc_service_value_set(svcname, "start_count", start_count_string);
- }
execvp(exec, argv);
#ifdef HAVE_PAM