Browse Source

systemd: do not reexec when not necessary

Do not reexec systemd when running version is the same as installed
binary. Apparently reexec causes some race condifions, which result in
assertion fail in systemd.
Marek Marczykowski-Górecki 9 years ago
parent
commit
90c84be5fb
1 changed files with 5 additions and 2 deletions
  1. 5 2
      vm-systemd/qubes-sysinit.sh

+ 5 - 2
vm-systemd/qubes-sysinit.sh

@@ -14,8 +14,11 @@ read_service() {
     $XS_READ qubes-service/$1 2> /dev/null
 }
 
-# Ensure we're running right version of systemd (the one started by initrd may be different)
-systemctl daemon-reexec
+systemd_pkg_version=`systemctl --version|head -n 1`
+if ! dmesg | grep -q "$systemd_pkg_version running in system mode."; then
+    # Ensure we're running right version of systemd (the one started by initrd may be different)
+    systemctl daemon-reexec
+fi
 
 # Wait for evtchn initialization
 while [ ! -e /proc/xen/xenbus ]; do