Libvirt provides a portable, long term stable C API for managing the virtualization technologies provided by many operating systems. It includes support for QEMU, KVM, Xen, LXC, bhyve, Virtuozzo, VMware vCenter and ESX, VMware Desktop, Hyper-V, VirtualBox and the POWER Hypervisor.
Go to file
Eric Blake 5d804ffae4 command: avoid leaking fds across fork
Since libvirt is multi-threaded, we should use FD_CLOEXEC as much
as possible in the parent, and only relax fds to inherited after
forking, to avoid leaking an fd created in one thread to a fork
run in another thread.  This gets us closer to that ideal, by
making virCommand automatically clear FD_CLOEXEC on fds intended
for the child, as well as avoiding a window of time with non-cloexec
pipes created for capturing output.

* src/util/command.c (virExecWithHook): Use CLOEXEC in parent.  In
child, guarantee that all fds to pass to child are inheritable.
(getDevNull): Use CLOEXEC.
(prepareStdFd): New helper function.
(virCommandRun, virCommandRequireHandshake): Use pipe2.
* src/qemu/qemu_command.c (qemuBuildCommandLine): Simplify caller.
2011-07-21 10:34:51 -06:00
.gnulib@a918da4d61 build: avoid requiring -lm 2011-07-11 17:32:11 -06:00
daemon rpc: Make the dispatch generator handle 'void name(void)' style procedures 2011-07-21 17:00:59 +02:00
docs doc: Add documentation for new cputune elements period and quota 2011-07-21 17:11:12 +08:00
examples update apparmor security driver for new udev paths 2011-07-14 11:41:48 -06:00
include util: add virtkeycode module 2011-07-21 15:57:47 +08:00
m4 tests: Lower stack usage below 4096 bytes 2011-04-30 19:59:52 +02:00
po Define remote wire protocol & impls for virDomainQemuAttach 2011-07-12 15:39:03 +01:00
python python: Fix makefile rule for code generation 2011-07-21 14:36:34 +02:00
src command: avoid leaking fds across fork 2011-07-21 10:34:51 -06:00
tests qemu: Implement period and quota tunable XML configuration and parsing 2011-07-21 17:11:12 +08:00
tools send-key: Expose the new API in virsh 2011-07-21 15:58:31 +08:00
.dir-locals.el maint: make spacing in .sh files easier 2011-03-14 21:57:42 -06:00
.gitignore util: add virtkeycode module 2011-07-21 15:57:47 +08:00
.gitmodules make .gnulib a submodule 2009-07-08 16:17:51 +02:00
.mailmap virsh: Avoid using magic numbers for logging 2011-07-14 07:03:40 -06:00
AUTHORS virsh: Avoid using magic numbers for logging 2011-07-14 07:03:40 -06:00
autobuild.sh Remove the Open Nebula driver 2011-03-28 14:09:11 +01:00
autogen.sh build: avoid problems with autogen.sh runs from tarball 2011-02-12 06:28:28 -07:00
bootstrap build: update to latest gnulib 2011-06-23 10:52:08 -06:00
bootstrap.conf build: don't hand-roll cloexec code 2011-07-13 17:44:08 -06:00
cfg.mk maint: fix spelling of Red Hat 2011-07-19 12:25:19 -06:00
ChangeLog-old generate ChangeLog from git logs into distribution tarball 2009-07-08 16:17:51 +02:00
configure.ac Fix build when using polkit0 2011-07-12 08:44:55 -06:00
COPYING.LIB remove all trailing blank lines 2009-07-16 15:06:42 +02:00
HACKING maint: rename virBufferVSprintf to virBufferAsprintf 2011-05-05 13:47:40 -06:00
libvirt.pc.in * libvirt.pc.in: applied patch from Daniel Berrange to fix --cflags 2006-03-24 13:18:12 +00:00
libvirt.spec.in build: disable some drivers when building without libvirt daemon 2011-07-14 22:59:07 +08:00
Makefile.am Re-add libvirt.spec to tarball to allwo "make rpm" 2011-05-09 14:23:19 +08:00
Makefile.nonreentrant Ban use of all inet_* functions 2010-10-22 11:59:23 +01:00
mingw32-libvirt.spec.in xml: create an RNG file for common types and move some definitions there 2011-07-05 12:33:21 -04:00
README Correct typos in the documentation (Atsushi SAKAI) 2008-01-24 10:15:13 +00:00
README-hacking maint: relax git minimum version 2010-02-24 14:29:27 -05:00
TODO Update todo list file to point at bugzilla/website 2010-10-13 16:45:26 +01:00

         LibVirt : simple API for virtualization

  Libvirt is a C toolkit to interact with the virtualization capabilities
of recent versions of Linux (and other OSes). It is free software
available under the GNU Lesser General Public License. Virtualization of
the Linux Operating System means the ability to run multiple instances of
Operating Systems concurrently on a single hardware system where the basic
resources are driven by a Linux instance. The library aim at providing
long term stable C API initially for the Xen paravirtualization but
should be able to integrate other virtualization mechanisms if needed.

Daniel Veillard <veillard@redhat.com>