[systemd-devel] systemd offline-update functionality

Lennart Poettering lennart at poettering.net
Tue Oct 16 15:27:33 UTC 2018


On Mo, 15.10.18 23:18, Uoti Urpala (uoti.urpala at pp1.inet.fi) wrote:

> > The same documentation page recommends setting “FailureAction =
> > reboot” in case the update script fails to complete.  However, this
> > does not seem to reboot the machine properly (e.g. I don’t see a POST
> > screen + grub as expected).  Using “reboot-force” does seem to have
> > the expected behavior.  What is the difference between these two
> > methods?
> 
> They're documented on the systemd.unit manpage for example. IIRC the
> "force" variant just kills processes without "properly" shutting down
> services through ExecStop actions.

Correct.

System shutdown is split into two phases. In phase #1 we'll stop
units cleanly, following the shutdown ordering defined between
them, and running all ExecStop= lines as configured. In phase #2 we'll
brutally kill/unmount/detach everything that remains in a tight
loop. Normally, phase #2 is just a safety net, that cleans up whatever
was missed in phase #1.

With FailureAction=reboot is used we enter phase #1, i.e. the clean
shutdown logic. If FailureAction=reboot-force then we skip phase #1,
entering directly phase #2.

If "FailureAction=reboot" doesn't work for you, then this suggests
some unit is stalling shutdown for some reason. You should debug what
that is and why it is doing that.

Lennart

-- 
Lennart Poettering, Red Hat


More information about the systemd-devel mailing list