Bug#736258: acpid won't stop, won't upgrade (systemd) - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=736258

Henrique de Moraes Holschuh hmh at debian.org
Sat Aug 2 19:56:26 BST 2014


On Sat, 02 Aug 2014, Russ Allbery wrote:
> Jonathan de Boyne Pollard <j.deboynepollard-newsgroups at ntlworld.com>
> writes:
> > And bugs #734766 and #734848 tell one the answer, which is that in order
> > to preserve its existing conceptual model that there is just the one
> > thing (named simply "acpid") invoke-rc.d should pull out the "socket"
> > from the "service" by looking for a "TriggeredBy=" relationship in the
> > output of "systemctl show", and operate upon both things together,
> > whenever it finds a socket-activated service.  There's even an attempt
> > at a patch that does that.

...

> I think a better solution *for upgrades* (removal is another matter, of
> course) would be to leave the socket enabled but disable socket activation
> for the service and then stop the service.  Then, when the service has
> been upgraded, re-enable socket activation and start the service if
> desired.

Services being subject to a package update can be down for extended amounts
of time (think package update that requires manual intervention, or even a
full manual reconfiguration, etc), or may actually involve an ABI break.  In
both cases, you want that socket down.

Therefore, it needs to be optional so that it will be done at the package
maintainer's discretion, it needs to be something under control of the
maintainer script (and _not_ configuration inside an unit file), and opt-in
would be the safer choice.

And you likely want it to have a configurable timeout that brings the socket
down when the service is not "allowed to reactivate" within that timeout.
Maybe it is even already implemented like that in systemd.

> I'm not sure if there's a way to do this currently from the command line,
> but it seems like the right thing to do to me.  If it's not easy to do,
> maybe we should talk to systemd upstream about making it easier?

Please fix the immediate problem first, and come up with a patch to disable
the socket on "invoke-rc.d stop".

You can concentrate on whatever is needed to add back the "keep socket
enabled across upgrades" feature properly after that.

-- 
  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh




More information about the Pkg-systemd-maintainers mailing list