Author: eelco
Date: Fri Apr  1 18:08:53 2011
New Revision: 26663
URL: https://svn.nixos.org/websvn/nix/?rev=26663&sc=1

Log:
* libvirtd job: wait until libvirtd is accepting connections.

Modified:
   nixos/trunk/modules/virtualisation/libvirtd.nix

Modified: nixos/trunk/modules/virtualisation/libvirtd.nix
==============================================================================
--- nixos/trunk/modules/virtualisation/libvirtd.nix     Fri Apr  1 16:02:22 
2011        (r26662)
+++ nixos/trunk/modules/virtualisation/libvirtd.nix     Fri Apr  1 18:08:53 
2011        (r26663)
@@ -84,9 +84,20 @@
 
         exec = "${pkgs.libvirt}/sbin/libvirtd --daemon --verbose";
 
+        # Wait until libvirtd is ready to accept requests.
+        postStart =
+          ''
+            for ((i = 0; i < 60; i++)); do
+                if ${pkgs.libvirt}/bin/virsh list > /dev/null; then exit 0; fi
+                sleep 1
+            done
+            exit 1 # !!! seems to be ignored
+          '';
+
         daemonType = "daemon";
       };
 
+    # !!! Split this into save and restore tasks.
     jobs.libvirt_guests =
       { name = "libvirt-guests";
       
@@ -103,10 +114,12 @@
         preStart = 
           ''
             mkdir -p /var/lock/subsys -m 755
-            ${pkgs.libvirt}/etc/rc.d/init.d/libvirt-guests start
+            ${pkgs.libvirt}/etc/rc.d/init.d/libvirt-guests start || true
           '';
 
         postStop = "${pkgs.libvirt}/etc/rc.d/init.d/libvirt-guests stop";
+
+        respawn = false;
       };
 
   };
_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits

Reply via email to