Hi Apollon, Thanks for providing a patch.
Apollon Oikonomopoulos <apoi...@gmail.com> writes: > diff --git a/debian/init-functions.d/40-systemd > b/debian/init-functions.d/40-systemd > index a213afc..e494ac2 100644 > --- a/debian/init-functions.d/40-systemd > +++ b/debian/init-functions.d/40-systemd > @@ -40,6 +40,7 @@ systemctl_redirect () { > local rc > local prog=${1##*/} > local command=$2 > + local sockets="" I think this should not only be limited to sockets, but to any triggering unit. As an example, cups.service is triggered by cups.path and cups.socket. > + # We also start/stop the associated sockets (if any), so that > + # "/etc/init.d/foo stop" permanently stops the service. > + if [ "$command" = start -o "$command" = stop ]; then > + for socket in $(systemctl list-unit-files --full --type=socket \ > + --no-legend 2>/dev/null \ > + | sed -ne 's/\.socket\s*[a-z]*\s*$/.socket/p'); do > + > + # Only handle successfully loaded sockets triggering this service > + triggers=$(systemctl -p Triggers show "$socket" 2>/dev/null) > + state=$(systemctl -p LoadState show "$service" 2>/dev/null) > + > + if [ "$state" = "LoadState=loaded" -a \ > + "$triggers" = "Triggers=$service" ]; then > + sockets="$socket $sockets" > + /bin/systemctl $command "$socket" This feels really clumsy. Why not ask systemd for all triggers of the service directly? E.g.: for unit in $(systemctl -p TriggeredBy show "$service" | sed 's/^TriggeredBy=//g') do /bin/systemctl $command $unit done -- Best regards, Michael -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org