summaryrefslogtreecommitdiff
path: root/src/systemctl
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2012-05-03 16:29:15 +0200
committerLennart Poettering <lennart@poettering.net>2012-05-03 16:29:15 +0200
commit3beddc7861783347eb0aaf5fa492e8b2aef9e691 (patch)
tree35b8aa321bc5983f08ab2e7bf1c4b5ff5f7787c3 /src/systemctl
parentc32b90dec78afe0db51ff0afa6448c01524105fa (diff)
systemctl: allow 'systemctl reboot -ff' to succeed even without D-Bus
Diffstat (limited to 'src/systemctl')
-rw-r--r--src/systemctl/systemctl.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
index cbe6848d03..681ad8c211 100644
--- a/src/systemctl/systemctl.c
+++ b/src/systemctl/systemctl.c
@@ -1783,7 +1783,6 @@ static int start_special(DBusConnection *bus, char **args) {
enum action a;
int r;
- assert(bus);
assert(args);
a = verb_to_action(args[0]);
@@ -5204,7 +5203,9 @@ static int systemctl_main(DBusConnection *bus, int argc, char *argv[], DBusError
return 0;
}
- if (!bus) {
+ if (((!streq(verbs[i].verb, "reboot") &&
+ !streq(verbs[i].verb, "halt") &&
+ !streq(verbs[i].verb, "reboot")) || arg_force <= 0) && !bus) {
log_error("Failed to get D-Bus connection: %s",
dbus_error_is_set(error) ? error->message : "No connection to service manager.");
return -EIO;