Any chance you can use <code>libvirt_vm.libvirtd_restart()</code> here?  It's good to re-use code when possible, and eases maintenance if we ever need to support systemd more specifically.  I'm not opposed to moving that function out of <code>libvirt_vm</code> and into another module if you're worried about circular-dependencies.  IMHO it doesn't really belong in <code>libvirt_vm</code> anyway.