[systemd-devel] [PATCH 1/3] systemctl: check for triggering units before calling StopUnit

Michal Sekletar msekleta at redhat.com
Fri Aug 9 07:00:22 PDT 2013


>From a62d3668fb2513b1ece827520d44d5b7cd560407 Mon Sep 17 00:00:00 2001
From: Michal Sekletar <msekleta at redhat.com>
Date: Thu, 8 Aug 2013 13:26:56 +0200
Subject: [PATCH 1/3] systemctl: check for triggering units before calling
 StopUnit

Rearranging the code in a way that we always check for triggers before
we issue StopUnit D-Bus call. This will make behavior consistent,
because triggers are always checked.

https://bugzilla.redhat.com/show_bug.cgi?id=908690
---
 src/systemctl/systemctl.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
index 8ec1824..ee47841 100644
--- a/src/systemctl/systemctl.c
+++ b/src/systemctl/systemctl.c
@@ -1980,6 +1980,16 @@ static int start_unit(DBusConnection *bus, char **args) {
                         return log_oom();
         }
 
+        /* When stopping units, warn if they can still be triggered by
+         * another active unit (socket, path, timer) */
+        if (!arg_quiet && streq(method, "StopUnit")) {
+                if (one_name)
+                        check_triggering_units(bus, one_name);
+                else
+                        STRV_FOREACH(name, args+1)
+                                check_triggering_units(bus, *name);
+        }
+
         if (one_name) {
                 ret = start_unit_one(bus, method, one_name, mode, &error, s);
                 if (ret < 0)
@@ -1998,16 +2008,6 @@ static int start_unit(DBusConnection *bus, char **args) {
                 r = wait_for_jobs(bus, s);
                 if (r < 0)
                         return r;
-
-                /* When stopping units, warn if they can still be triggered by
-                 * another active unit (socket, path, timer) */
-                if (!arg_quiet && streq(method, "StopUnit")) {
-                        if (one_name)
-                                check_triggering_units(bus, one_name);
-                        else
-                                STRV_FOREACH(name, args+1)
-                                        check_triggering_units(bus, *name);
-                }
         }
 
         return ret;
-- 
1.8.3.1



More information about the systemd-devel mailing list