On Thu, Feb 10, 2022 at 3:11 PM Ulrich Windl < ulrich.wi...@rz.uni-regensburg.de> wrote:
> >>> Etienne Champetier <champetier.etie...@gmail.com> schrieb am > 10.02.2022 um > 12:47 in Nachricht > <CAOdf3grZ2wUOkJ8Pzu-EM=+ZCKY4b6XK9dyZoh=qpx5hghj...@mail.gmail.com>: > > Le jeu. 10 févr. 2022 à 11:49, Ulrich Windl > > <ulrich.wi...@rz.uni-regensburg.de> a écrit : > >> > >> >>> Lennart Poettering <lenn...@poettering.net> schrieb am 10.02.2022 > um > 11:31 > >> in > >> Nachricht <YgTpdVFRgL+uQoY9@gardel-login>: > >> > On Mi, 09.02.22 22:05, Etienne Champetier ( > champetier.etie...@gmail.com) > >> > wrote: > >> > > >> >> Hello systemd hackers, > >> >> > >> >> After flashing the firmware of some pcie card I need to power cycle > >> >> the server to finish the flashing process. > >> >> For now I have a simple script in lib/systemd/system-shutdown/ > running > >> >> "ipmitool power cycle" but I would like to make sure it runs after > >> >> other scripts like fwupd.shutdown or mdadm.shutdown > >> >> > >> >> Is there any way to have systemd cleanly power cycle my server > instead > >> >> of rebooting it ? > >> > > >> > What does "power cycle" entail that "reboot" doesnt? i.e. why doesn't > >> > "systemctl reboot" suffice? > >> > >> My guess is that some smart cards with their own firmware and CPu do not > >> reboot unless they are power cycled, so maybe if the firmware upgrade on > the > >> card does not force it to reboot, it my need a power cycle. > >> > >> > > >> > /usr/lib/systemd/system-shutdown/ drop-ins are executed before the OS > >> > transitions back into the initrd — the initrd will then detach the > >> > root fs (i.e. undo what it attached at boot) and actually reboot. This > >> > means if your command turns off the power source you should stick it > >> > in the initrd's shutdown logic, and not into > >> > /usr/lib/systemd/system-shutdown/. If you are using RHEL this means > >> > into dracut. But adding it there is something to better discuss with > >> > the dracut community than here. > >> > >> My guess is that it would be handled best by some special GRUB boot > menu > > entry > >> (like "boot 'power cycle' once). > > > > This is pretty clean but it means going through "BIOS" init twice > > which can be pretty long on physical servers > > Hi! > > Of course I have a better solution: Use an external server and just before > restarting send a command to that server that will, after a carefully tuned > delay, will trigger the IPMI power-cycle remotely ;-) > I believe that it's almost impossible to trigger a power cycle through IPMI > while also doing a clean shutdown/reboot, unless the the IPMI features a > delayed execution itself. > Asking the BMC to power the system off is no different than asking the system to power itself off – what makes it a "clean shutdown" is stopping services, syncing and unmounting filesystems, etc. So in theory these shutdown hooks should do the job. Though a better place would be a "shutdown initramfs" which runs from a tmpfs after *all* storage has been unmounted. I think Dracut has that, and explicitly specifies the order for its shutdown hooks, so it should be possible to put ipmitool there. -- Mantas Mikulėnas