Hi,
Ich bin nicht sicher wo das Problem liegt, daher erkläre ich einfach mal von vorne und spekuliere am Ende. Nötiges Hintergrundwissen: Wir haben hier einen named (bind9), aber kein Samba am Start. Der fragliche Server ist seit ewigen Zeiten installiert und wurde immer schön auf die aktuelle Version aktualisiert.
Vor wenigen Tagen so. Der “Auslöser”:
/etc/cron.daily/univention-upgrade:
Starting univention-upgrade. Current UCS version is 4.4-0 errata90
[---schnipp---]
The following packages will be upgraded:
bind9-host,dnsutils,bind9,[---schnipp---]
ERROR: update failed. [---schnipp---]
Der Grund dieser Beschwerde war recht schnell gefunden:
# LANG=C apt-get install -f
[---schnipp---]
Setting up bind9 (1:9.10.3.dfsg.P4-12.3+deb9u5) ...
insserv: Service samba-ad-dc has to be enabled to start service bind9
insserv: exiting now!
update-rc.d: error: insserv rejected the script header
dpkg: error processing package bind9 (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
bind9
[---schnipp---]
# grep samba-ad-dc /etc/init.d/bind9
# Required-Start: slapd samba-ad-dc
# Required-Stop: slapd samba-ad-dc
Soweit klar: das insserv
scheitert weil eben auch samba-ad-dc
gestartet werden muss, der bei uns ja gar nicht installiert ist. Also mal schnell geschaut und folgenden commit vom Juni 2018(!) gefunden, der auf Bug 43689 mit Erata http://errata.software-univention.de/ucs/4.3/146.html verweist. Copy&Paste der Erata:
The bind9 service is now a native systemd service and does not use runsv anymore.
Alles schick? Nö! Wenn das ein nativer systemd service ist, warum gibt es dann den Verweis auf das runit (ich kann mich noch dunkel an diese Zeiten erinnern) und außerdem warum gibt es dann bei uns dann auch noch den sysvinit Eintrag, also die Datei /etc/init.d/bind9
? Etwas verwirrend.
Und jetzt meine Spekulation: Aus unbekannten Gründen scheint bei uns ein Mix aus systemd
und sysvinit
vorzuliegen. Ich kann mir Vorstellen das dies so nicht sein soll. Es scheint so zu sein das bei einem (länger zurück liegenden) Update wohl ein cleanup nicht gelaufen ist, welches die sysvinit
Einträge erklären würde.
Kann hier jemand sachdienliche Hinweise geben?
Und, rein aus historischem Interesse heraus, müsste nicht auch Datei https://github.com/univention/univention-corporate-server/blob/4.4-0/services/univention-bind/conffiles/etc/init.d/bind9 geändert werden? In etwa so:
# Provides: bind9
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
- # Required-Start: slapd samba-ad-dc
- # Required-Stop: slapd samba-ad-dc
+ # Required-Start: $remote_fs
+ # Required-Stop: $remote_fs
+ # Should-Start: $network $syslog slapd samba-ad-dc
+ # Should-Stop: $network $syslog slapd samba-ad-dc
# Short-Description: bind9 Domain Name Server (DNS)
### END INIT INFO
Nachtrag:
Bei uns wird systemd benutzt, also ohne den Eintrag init=/lib/sysvinit/init
gestartet:
# cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.9.0-9-amd64 root=UUID=dbe61b22-2909-4b2e-8f86-694037e4649a ro console=tty0 console=ttyS0 net.ifnames=0 quiet loglevel=0 rootdelay=5 nosplash
Liebe Grüße Lutz