[Pkg-sysvinit-devel] Bug#856044: sysvinit: Any update-rc.d command executed in dry-run mode causes a 'systemctl daemon-reload'

Stefano Rago stefanorago at gmail.com
Fri Feb 24 16:27:08 UTC 2017


Package: sysvinit
Version: 2.88dsf-59
Severity: normal

Dear Maintainer,


   * What led up to the situation?
	Several of the Debian Jessie machines in our infrastructures are running Chef as configuration management system. Part of the provisioning process involves running commands like 'update-rc.d -n -f <service_name> remove' whose output used to determine the status of a certain managed service.
	This is supposed to be a dry-run command, but it issues a 'systemctl daemon-reload' with undesirable side-effects, at every provisioning.

   * What exactly did you do (or not do) that was effective (or
     ineffective)?
	I managed to figure this out running this command:
		strace -f -e execve update-rc.d -n -f apache2 remove

   * What was the outcome of this action?
	the following stacktrace:

execve("/usr/sbin/update-rc.d", ["update-rc.d", "-n", "-f", "apache2", "remove"], [/* 29 vars */]) = 0
Process 9413 attached
[pid  9413] execve("/sbin/insserv", ["/sbin/insserv", "-n", "-f"], [/* 29 vars */]) = 0
insserv: dryrun, not creating .depend.boot, .depend.start, and .depend.stop
[pid  9413] +++ exited with 0 +++
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=9413, si_uid=0, si_status=0, si_utime=2, si_stime=2} ---
Process 9420 attached
[pid  9420] execve("/usr/local/sbin/systemctl", ["systemctl", "daemon-reload"], [/* 29 vars */]) = -1 ENOENT (No such file or directory)
[pid  9420] execve("/usr/local/bin/systemctl", ["systemctl", "daemon-reload"], [/* 29 vars */]) = -1 ENOENT (No such file or directory)
[pid  9420] execve("/usr/sbin/systemctl", ["systemctl", "daemon-reload"], [/* 29 vars */]) = -1 ENOENT (No such file or directory)
[pid  9420] execve("/usr/bin/systemctl", ["systemctl", "daemon-reload"], [/* 29 vars */]) = -1 ENOENT (No such file or directory)
[pid  9420] execve("/sbin/systemctl", ["systemctl", "daemon-reload"], [/* 29 vars */]) = -1 ENOENT (No such file or directory)
[pid  9420] execve("/bin/systemctl", ["systemctl", "daemon-reload"], [/* 29 vars */]) = 0
[pid  9420] +++ exited with 0 +++
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=9420, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
+++ exited with 0 +++

   * What outcome did you expect instead?
	that the 'systemctl daemon-reload' command is not issued as part of the dry-run



-- System Information:
Debian Release: 8.7
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.16.0-4-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.utf8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages sysvinit depends on:
ii  init         1.22
ii  libc6        2.19-18+deb8u7
ii  libselinux1  2.3-2
ii  libsepol1    2.3-2

sysvinit recommends no packages.

sysvinit suggests no packages.

-- no debconf information


More information about the Pkg-sysvinit-devel mailing list