diff options
author | Sangjung Woo <sangjung.woo@samsung.com> | 2015-01-23 20:21:57 +0900 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2015-01-23 09:30:44 -0500 |
commit | b986229efe2cc96157aa14c37bab7843311bbef1 (patch) | |
tree | 22693e5f3f3bf6106c8aa7f09123965388350626 | |
parent | 874d3404cbf2363604106c8f86683db4082691ea (diff) |
systemctl: bugfix for systemctl reboot command with argument
According to systemctl man page, 'systemctl reboot [arg]' should work
without any errors. However, it does not work because of 'Invalid number
of arguments' error, except for 'reboot [arg]'. This patch fixes the bug
so that both of commands work in exactly the same way.
-rw-r--r-- | src/systemctl/systemctl.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 44b65bb444..66c0b9949e 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -2955,6 +2955,12 @@ static int start_special(sd_bus *bus, char **args) { return -EPERM; } + if (a == ACTION_REBOOT) { + r = update_reboot_param_file(args[1]); + if (r < 0) + return r; + } + if (arg_force >= 2 && (a == ACTION_HALT || a == ACTION_POWEROFF || @@ -7093,7 +7099,7 @@ static int systemctl_main(sd_bus *bus, int argc, char *argv[], int bus_error) { { "import-environment", MORE, 1, import_environment}, { "halt", EQUAL, 1, start_special, FORCE }, { "poweroff", EQUAL, 1, start_special, FORCE }, - { "reboot", EQUAL, 1, start_special, FORCE }, + { "reboot", MORE, 1, start_special, FORCE }, { "kexec", EQUAL, 1, start_special }, { "suspend", EQUAL, 1, start_special }, { "hibernate", EQUAL, 1, start_special }, |