From 49111a708eb3bc8488c56c4695fa36c826bf3657 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 18 Sep 2012 22:03:34 +0200 Subject: [PATCH] systemctl: warn about triggering units only at the end Instead of checking each unit separately, check once at the end. This should avoid spurious warnings about a service being triggerable by other stuff. --- TODO | 6 ------ src/systemctl/systemctl.c | 15 ++++++++++----- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/TODO b/TODO index c941cb070..ec961eaaf 100644 --- a/TODO +++ b/TODO @@ -1,10 +1,4 @@ Bugfixes: -* there is nothing to warn about here :) - $ systemctl stop systemd-udevd.service systemd-udevd-kernel.socket systemd-udevd-control.socket - Warning: Stopping systemd-udevd.service, but it can still be activated by: - systemd-udevd-control.socket - systemd-udevd-kernel.socket - * check systemd-tmpfiles for selinux context hookup for mknod(), symlink() and similar * swap units that are activated by one name but shown in the kernel under another are semi-broken diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 729d4dd32..cc9c77525 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -1584,11 +1584,6 @@ static int start_unit_one( p = NULL; } - /* When stopping a unit warn if it can still be triggered by - * another active unit (socket, path, timer) */ - if (!arg_quiet && streq(method, "StopUnit")) - check_triggering_units(bus, name); - return 0; } @@ -1723,6 +1718,16 @@ static int start_unit(DBusConnection *bus, char **args) { ret = r; goto finish; } + + /* 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); + } } finish: -- 2.30.2