having our ceph.service pulled in by ceph.target does not work anymore, because "systemctl start ceph.target" hangs forever on ceph-common upgrades. multi-user.target seems to work as well, and we are ordered after pve-cluster anyway.
only replace the old ceph.service if it is an exact match. Signed-off-by: Fabian Grünbichler <f.gruenbich...@proxmox.com> --- Tested using 10.2.5 -> 10.2.6 upgrade, subsequent reboots also work as expected. Unfortunately this update needs to happen before upgrading the Ceph packages, or the hanging upgrade needs to be manually interrupted by killing the hanging systemctl process. bin/init.d/ceph.service | 2 +- debian/postinst | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/bin/init.d/ceph.service b/bin/init.d/ceph.service index 623becd..450856e 100644 --- a/bin/init.d/ceph.service +++ b/bin/init.d/ceph.service @@ -8,4 +8,4 @@ ExecStart=/usr/sbin/ceph-disk --log-stdout activate-all Type=oneshot [Install] -WantedBy=ceph.target +WantedBy=multi-user.target diff --git a/debian/postinst b/debian/postinst index 13fda4c..a3dd583 100755 --- a/debian/postinst +++ b/debian/postinst @@ -79,6 +79,17 @@ EOF # disable fancy init messages (bad with bootlogd) test -f /etc/lsb-base-logging.sh || echo "FANCYTTY=0" >/etc/lsb-base-logging.sh + if [ -f /etc/systemd/system/ceph.service ]; then + md5=$(md5sum /etc/systemd/system/ceph.service) + if [[ "$md5" == "21b2e7a7c4ffcf92ad0ec2c905e88e5b /etc/systemd/system/ceph.service" ]]; then + echo "Updating PVE ceph.service to correct install target.." + cp /usr/share/doc/pve-manager/examples/ceph.service /etc/systemd/system/ceph.service + systemctl --system daemon-reload >/dev/null || true + systemctl --system disable ceph.service + systemctl --system enable ceph.service + echo " done" + fi + fi systemctl --system daemon-reload >/dev/null || true -- 2.1.4 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel