On Mon, Dec 15, 2008 at 11:27:27AM +0000, Daniel P. Berrange wrote: [..snip..] > > + vm->stdin_fd = qemudGetProcFD(vm->pid, 0); > > + vm->stdout_fd = qemudGetProcFD(vm->pid, 1); > > + vm->stderr_fd = qemudGetProcFD(vm->pid, 2); > > NACK, to these 3 lines - since we go to trouble of creating the statefile, > we should store the FD numbers in the statefile too, instead of relying > in the linux specific /proc code. This is (as far as I know) the last blocker for merging the forking of qemus/kvms and reattaching them after libvirtd restart (so the vms survive a libvirtd crash/restart)[1]. While I can safe the path to std{in,out,err} in the domain status file easily this would still be /proc/<pid>/fd/{1,2,3} which is not portable. After reading the monitor path on vm startup we only need the above fds to decect vm shutdown in qemudDispatchVMEvent(). This could be replaced by simply dup'ing the fds and using inotify on the pid file in /var/run/libvirt/qemu/ to detect vm shutdown instead - but this isn't portable outside of Linux either. Any other options I'm overlooking? Note that the current code doesn't break any non Linux port, it's just that the VMs won't get reattached after daemon restart. -- Guido [1] http://honk.sigxcpu.org/projects/libvirt/daemon-restart/ -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list