On Mon, Jan 12, 2009 at 11:30:19AM +0000, Daniel P. Berrange wrote: > There's different needs for each file descriptor > > - stdin_fd - this is only ever used for incoming migration data > all other times it is hooked up to /dev/null. So we don't need > to keep this FD around at all Agreed. > - stdout_fd - AFAIK, the only time we get any data on stdout is > when we run qemu -help to check support args. Current code will > read & log all data on stdout, but I believe this is effectively > nothing and so we could just hook it to /dev/null & ignore it We can just dup that one too while at it in case qemu/kvm should dump anything else there. > - stderr_fd - libvirtd reads this FD & logs the data to the domain > logfile in /var/log/libvirt/qemu/$NAME.log. Instead of having > the daemon process this logging, we can just dup() the file straight > onto the logfile FD, so data will be logged even when libvirtd is > not running. The only minor complication is that we need to parse > the logfile to get the monitor TTY path. There's one more thing (which was my intial reason for asking): we also use this fd in qemudDispatchVMEvent() to detect vm shutdown: if (events & VIR_EVENT_HANDLE_READABLE) { if (qemudVMData(driver, vm, fd) < 0) failed = 1; } else { quit = 1; } } if (failed || quit) { event = virDomainEventNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED, quit ? VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN : VIR_DOMAIN_EVENT_STOPPED_FAILED); qemudShutdownVMDaemon(NULL, driver, vm); if (!vm->persistent) { virDomainRemoveInactive(&driver->domains, vm); vm = NULL; } Using the monitor fd for this instead should work. Would that be o.k.? -- Guido -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list