Bei einem Update, was bei einem Linuxprogramm sehr häufig der Fall ist, brauche ich dann nicht alle meine Init.d scripte modifizieren oder?
Ein Paket für einen Dienst sieht im Normalfall einen Restart eines laufenden Dienstes vor.
Bei solch einem Konstrukt wären die abgeleiteten Prozesse unberücksichtigt und würden als altes binary weiterlaufen.
Also entweder drauf achten und entsprechend neu starten,
oder vielleicht läßt sich was mit
DPkg::Post-Invoke { ........; };
zaubern?
Erscheint mir aber schwierig, im Environment des Aufrufs gibt es keinen Hinweis auf die abgelaufenen Installationen.
Vielleicht durch /var/lib/dpkg/trigger/?
Code: Alles auswählen
# grep . /var/lib/dpkg/triggers/*
....
/var/lib/dpkg/triggers/aspell-autobuildhash:dictionaries-common
/var/lib/dpkg/triggers/cleanup-pkgprepare-updates:python-central
/var/lib/dpkg/triggers/ispell-autobuildhash:dictionaries-common
/var/lib/dpkg/triggers/pysupport:python-support
/var/lib/dpkg/triggers/update-ca-certificates:ca-certificates
/var/lib/dpkg/triggers/update-ca-certificates-fresh:ca-certificates
/var/lib/dpkg/triggers/update-default-ispell:dictionaries-common
/var/lib/dpkg/triggers/update-default-wordlist:dictionaries-common
/var/lib/dpkg/triggers/update-initramfs:initramfs-tools
Der Name der Datei scheint der Name des entsprechenden Befehls,
die Datei enthält den Name des entsprechenden Paketes.
(zumindest in einigen Fällen)
Der entsprechende Aufruf (in diesem Fall ein Skript mit den Restart-Befehlen für die sekundären Prozesse)
müßte dann im PATH verfügbar sein,
/usr/local/sbin/ / /usr/local/bin/ dürften wohl funktionieren.
/var/lib/dpkg/triggers/service-sekundaer-shairport:
(falls es ein solches Paket gibt)
/usr/local/sbin/service-sekundaer-shairport:
Code: Alles auswählen
#!/bin/sh
SERVICE=shairport
for i in /etc/init.d/${SERVICE}??; do
[ -x "$i" ] || continue
"$i" status && "$i" restart
done
Evtl. noch /var/lib/dpkg/info/shairport.triggers:
Ob es überhaupt funktioniert und die Dienste im richtigen Moment neugestartet würden,
ist auszuprobieren.
(Scheint so, als ob das im postinst doch explizit verwendet werden muß, statt ein automatischer Mechanismus zu sein)
(Bei mir laß ich das jetzt mal für mehrere Instanzen vsftpd laufen
(Bei dem ist auch einiges im Init-Skript anzupassen, zBsp. viele "hardcodierte" Aufrufe durch Variable zu ersetzen,
Konf-Dateien, pam-Dateien, unterschiedliche Benutzer/Homes))