diff options
author | Lennart Poettering <lennart@poettering.net> | 2010-07-11 04:22:00 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-07-11 04:22:00 +0200 |
commit | 983d9c90151f4b85301bd8078afd560269e75961 (patch) | |
tree | 9ea78cb17ce4b19c4ee3ca90a63d1d6aab534f0b /src/systemctl.c | |
parent | 51bc5d4b84ba684463ea6e335a1d761d14aa76d8 (diff) |
units: turn Wants=shutdown back into Requires=shutdown to avoid removal of jobs due to the impact minimizer
Diffstat (limited to 'src/systemctl.c')
-rw-r--r-- | src/systemctl.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/systemctl.c b/src/systemctl.c index d033a75280..d1892e4ae0 100644 --- a/src/systemctl.c +++ b/src/systemctl.c @@ -794,12 +794,17 @@ finish: } static int start_special(DBusConnection *bus, char **args, unsigned n) { + int r; + assert(bus); assert(args); - warn_wall(verb_to_action(args[0])); + r = start_unit(bus, args, n); + + if (r >= 0) + warn_wall(verb_to_action(args[0])); - return start_unit(bus, args, n); + return r; } static int check_unit(DBusConnection *bus, char **args, unsigned n) { @@ -3292,26 +3297,29 @@ static int reload_with_fallback(DBusConnection *bus) { static int start_with_fallback(DBusConnection *bus) { int r; - warn_wall(arg_action); if (bus) { /* First, try systemd via D-Bus. */ if ((r = start_unit(bus, NULL, 0)) > 0) - return 0; + goto done; /* Hmm, talking to systemd via D-Bus didn't work. Then * let's try to talk to Upstart via D-Bus. */ if ((r = talk_upstart()) > 0) - return 0; + goto done; } /* Nothing else worked, so let's try * /dev/initctl */ if ((r = talk_initctl()) != 0) - return 0; + goto done; log_error("Failed to talk to init daemon."); return -EIO; + +done: + warn_wall(arg_action); + return 0; } static int halt_main(DBusConnection *bus) { |