]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
login: logind-dbus: support scheduled kexec (#19162)
authorJérôme Carretero <cJ-tub@zougloub.eu>
Fri, 9 Apr 2021 08:55:58 +0000 (04:55 -0400)
committerGitHub <noreply@github.com>
Fri, 9 Apr 2021 08:55:58 +0000 (10:55 +0200)
login: logind-dbus: support delayed kexec

src/login/logind-dbus.c

index 088136ec860a38ac4beded683a11cd074d254347..694a99fba14c76f721ddc3a080ab3252abecb139 100644 (file)
@@ -2140,6 +2140,8 @@ static int manager_scheduled_shutdown_handler(
                 target = SPECIAL_POWEROFF_TARGET;
         else if (streq(m->scheduled_shutdown_type, "reboot"))
                 target = SPECIAL_REBOOT_TARGET;
+        else if (streq(m->scheduled_shutdown_type, "kexec"))
+                target = SPECIAL_KEXEC_TARGET;
         else if (streq(m->scheduled_shutdown_type, "halt"))
                 target = SPECIAL_HALT_TARGET;
         else
@@ -2205,7 +2207,7 @@ static int method_schedule_shutdown(sd_bus_message *message, void *userdata, sd_
                 action = "org.freedesktop.login1.power-off";
                 action_multiple_sessions = "org.freedesktop.login1.power-off-multiple-sessions";
                 action_ignore_inhibit = "org.freedesktop.login1.power-off-ignore-inhibit";
-        } else if (streq(type, "reboot")) {
+        } else if (STR_IN_SET(type, "reboot", "kexec")) {
                 action = "org.freedesktop.login1.reboot";
                 action_multiple_sessions = "org.freedesktop.login1.reboot-multiple-sessions";
                 action_ignore_inhibit = "org.freedesktop.login1.reboot-ignore-inhibit";