diff options
-rw-r--r-- | nixos/modules/virtualisation/libvirtd.nix | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/nixos/modules/virtualisation/libvirtd.nix b/nixos/modules/virtualisation/libvirtd.nix index 98828c280bf9..a2bfc447e9dc 100644 --- a/nixos/modules/virtualisation/libvirtd.nix +++ b/nixos/modules/virtualisation/libvirtd.nix @@ -147,19 +147,12 @@ in done ''; # */ - serviceConfig.ExecStart = ''@${pkgs.libvirt}/sbin/libvirtd libvirtd --config "${configFile}" --daemon ${concatStringsSep " " cfg.extraOptions}''; - serviceConfig.Type = "forking"; - serviceConfig.KillMode = "process"; # when stopping, leave the VMs alone - - # 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 - ''; + serviceConfig = { + ExecStart = ''@${pkgs.libvirt}/sbin/libvirtd libvirtd --config "${configFile}" --daemon ${concatStringsSep " " cfg.extraOptions}''; + Type = "notify"; + KillMode = "process"; # when stopping, leave the VMs alone + Restart = "on-failure"; + }; }; users.extraGroups.libvirtd.gid = config.ids.gids.libvirtd; |