]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core: only set the watchdog variables in ExecStart= lines 3818/head
authorLennart Poettering <lennart@poettering.net>
Thu, 4 Aug 2016 20:11:29 +0000 (22:11 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 4 Aug 2016 21:08:05 +0000 (23:08 +0200)
src/core/execute.c
src/core/execute.h
src/core/service.c

index 90281397235333e5ba03fb612711e2dadd5769e9..7aafb1b058068d2bb59731962268ac0c1d5b43b9 100644 (file)
@@ -1425,7 +1425,7 @@ static int build_environment(
                 our_env[n_env++] = x;
         }
 
-        if (p->watchdog_usec > 0) {
+        if ((p->flags & EXEC_SET_WATCHDOG) && p->watchdog_usec > 0) {
                 if (asprintf(&x, "WATCHDOG_PID="PID_FMT, getpid()) < 0)
                         return -ENOMEM;
                 our_env[n_env++] = x;
index 2b4238ed7e283b7a00e516f97752179e54fde130..2d05ca39aac36ef45108f93b3e66eb1efba82b22 100644 (file)
@@ -218,6 +218,7 @@ typedef enum ExecFlags {
         EXEC_PASS_FDS          = 1U << 4,
         EXEC_IS_CONTROL        = 1U << 5,
         EXEC_SETENV_RESULT     = 1U << 6,
+        EXEC_SET_WATCHDOG      = 1U << 7,
 } ExecFlags;
 
 struct ExecParameters {
index a6793b813b99ec7e8d4d75cfb4f49f5c4f4b688c..c21653f5fa2999b808ba260c5f38a6138c87d059 100644 (file)
@@ -1743,7 +1743,7 @@ static void service_enter_start(Service *s) {
         r = service_spawn(s,
                           c,
                           timeout,
-                          EXEC_PASS_FDS|EXEC_APPLY_PERMISSIONS|EXEC_APPLY_CHROOT|EXEC_APPLY_TTY_STDIN,
+                          EXEC_PASS_FDS|EXEC_APPLY_PERMISSIONS|EXEC_APPLY_CHROOT|EXEC_APPLY_TTY_STDIN|EXEC_SET_WATCHDOG,
                           &pid);
         if (r < 0)
                 goto fail;
@@ -1955,7 +1955,7 @@ static void service_run_next_main(Service *s) {
         r = service_spawn(s,
                           s->main_command,
                           s->timeout_start_usec,
-                          EXEC_PASS_FDS|EXEC_APPLY_PERMISSIONS|EXEC_APPLY_CHROOT|EXEC_APPLY_TTY_STDIN,
+                          EXEC_PASS_FDS|EXEC_APPLY_PERMISSIONS|EXEC_APPLY_CHROOT|EXEC_APPLY_TTY_STDIN|EXEC_SET_WATCHDOG,
                           &pid);
         if (r < 0)
                 goto fail;