Bug#910377: Inhibit reboot/shutdown if dpkg is running

Laurent Bigonville bigon at debian.org
Wed May 19 15:03:16 BST 2021


reopen 910377
reassign dpkg 1.20.9
thanks

On Sat, 31 Aug 2019 00:34:32 +0200 Michael Biebl <biebl at debian.org> wrote:

> On Fri, 5 Oct 2018 21:30:43 +0200 Michael Biebl <biebl at debian.org> wrote:
> > Am 05.10.18 um 21:28 schrieb Michael Biebl:
> > > That said, also keep in mind, that the inhibit mechanism does not 
work
> > > if the reboot request is triggered by privileged users [1], e.g. 
if you
> > > trigger a reboot as root, an existing inhibitor blocks are ignored.
> > > [1] https://github.com/systemd/systemd/issues/6644
> >
> > This issue describes this even better
> > https://github.com/systemd/systemd/issues/2680
>
> It seems there is no real interest to change this upstream and even if
> at some point in the future there was a way to make inhibitors work for
> the root user, I think such an inhibitor lock shoud be take directly by
> dpkg. I don't think the hook interface is sufficient for that.

I'm reopening this issue and reassigning it dpkg package, that would at 
least avoid non privileged users to restart the machine when there is an 
update happening.

Apparently RPM has this functionality via a plugin. The manpage of the 
plugins available at [0] and says:

        This plugin for RPM prevents the system to enter shutdown, sleep
        or idle mode while there is a rpm transaction running to prevent
        system corruption that can occur if the transaction is
        interrupted by a reboot.

        This is achieved by using the inhibit DBUS interface of systemd.
        The call is roughly equivalent to executing

        systemd-inhibit --mode=block --what=idle:sleep:shutdown --who=RPM
        --why="Transaction running"

The code is available in [1]

Having something similar in dpkg would be nice, but that would mean that 
dpkg will grow a dependency on libdbus and/or libsystemd, not sure how 
that would work

[0] https://man7.org/linux/man-pages/man8/rpm-plugin-systemd-inhibit.8.html
[1] 
https://github.com/rpm-software-management/rpm/blob/master/plugins/systemd_inhibit.c



More information about the Pkg-systemd-maintainers mailing list