Rebooting using "systemctl kexec" does a normal reboot. The kernel+initramfs have been loaded with "kexec --load --reuse-cmdline --initrd=/boot/initramfs-linux.img /boot/vmlinuz-linux" on my Arch installation prior to issuing systemctl. When I manually "kexec -e" in emergency.target kexec works.
What does: $ cat /sys/kernel/kexec_loaded show, before kexec is called?
$ cat /sys/kernel/kexec_loaded 0 $ kexec --load --reuse-cmdline --initrd=/boot/initramfs-linux.img /boot/vmlinuz-linux $ cat /sys/kernel/kexec_loaded 1 $ which kexec /sbin/kexec
I did some digging and found out that systemd's kexec implementation works. It just wasn't executed because of /run/initramfs/shutdown logic. Interestingly enough, it contains kexec logic but not the kexec executable itself. I'm reporting it at arch now.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.