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

Michal Sekletar msekleta at redhat.com
Thu Aug 8 06:19:08 PDT 2013


Rearranging the code in a way that we always check for triggers
before we issue StopUnit D-Bus call will make behavior consistent,
thus 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