Hello Michael, Michael Biebl [2016-06-03 13:22 +0200]: > As you can see, the start request is not redirected to systemctl, so the > systemd integration is broken. > > I suspect this happens because init-functions is sourced before $1 is > shifted, so the systemd lsb init hook get's the wrong parameters.
Correct: + set /etc/init.d/apache-htcacheclean start [...] + prog=apache-htcacheclean + service=apache-htcacheclean.service Thus $0 is okay (from the "set" in init-t-script) + systemctl -p CanReload show apache-htcacheclean.service + [ CanReload=no = CanReload=no ] + [ /etc/init.d/apache-htcacheclean = reload ] This corresponds to [ "${1:-}" = "reload" ], thus this check is broken. Apparenlty the "set" (first traced line) doesn't assign "$start" to $1, but to $2, and the script name to $1 as well. This then finally fails when init-functions.d/40-systemd tries to act on the action $1: + [ x/etc/init.d/apache-htcacheclean = xstart -o x/etc/init.d/apache-htcacheclean = xstop -o x/etc/init.d/apache-htcacheclean = xrestart -o x/etc/init.d/apache-htcacheclean = xreload -o x/etc/init.d/apache-htcacheclean = xforce-reload -o x/etc/init.d/apache-htcacheclean = xstatus ] I tried to add something like if [ "$0" = "$1" ]; then shift; fi above the sourcing of /lib/lsb/init-functions and adjust the scriptname= assignment; that works when calling it as an init script then, but the systemd redirection is then broken. Also, this wouldn't do anything to fix #826215, so changing only init-d-script by itself wouldn't be a complete solution anyway. Thanks, Martin -- Martin Pitt | http://www.piware.de Ubuntu Developer (www.ubuntu.com) | Debian Developer (www.debian.org)