[Pkg-sysvinit-devel] Bug#734766: invoke-rc.d should also handle socket units during start/stop

Apollon Oikonomopoulos apoikos at gmail.com
Thu Jan 9 17:57:49 UTC 2014


Package: sysv-rc
Version: 2.88dsf-45
Severity: normal

Dear Maintainer,

Currently invoke-rc.d will wrap starting/stopping any service with a 
corresponding systemd service unit file in a systemctl call. This works 
well with most services, however if a service supports socket activation 
and ships a socket unit, the socket will not be started/stopped during 
these operations.

In the case of stop, this means that the service is not effectively
stopped, but instead restarted, since it will be re-activated on the
next connection. This is especially important for maintainer scripts,
since dh_systemd_start will not perform any start/stop/restart dance if
an init script is present, and will defer the job to invoke-rc.d instead
(which only stops the service, not the socket).

Although there are unit-side workarounds for this (e.g. adding PartOf=
to the socket unit definition), IMHO the desired behavior would be to
detect if the service has a corresponding socket enabled, and start/stop
this as well. For the record, this is also the behavior currently 
implemented by service(8) (which also checks that the socket actually 
triggers the given service).

Regards,
Apollon



More information about the Pkg-sysvinit-devel mailing list