aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Fehlig <jfehlig@novell.com>2011-03-10 18:17:55 +0000
committerJim Fehlig <jfehlig@novell.com>2011-03-10 18:17:55 +0000
commit8fa00387409c3fa1faadba90d723f547abf17bf8 (patch)
tree8e2b726d37978d7194f18c94432b00ff86961694
parent0038df5fa3a8daab6b22e0a70966cf1919af3d19 (diff)
downloadxen-8fa00387409c3fa1faadba90d723f547abf17bf8.tar.gz
xen-8fa00387409c3fa1faadba90d723f547abf17bf8.tar.bz2
xen-8fa00387409c3fa1faadba90d723f547abf17bf8.zip
libxl: Call setsid(2) before exec'ing device model
While doing development on libvirt libxenlight driver I noticed that terminating a libxenlight client causes any qemu-dm processes that were indirectly created by the client to also terminate. Calling setsid(2) before exec'ing qemu-dm resolves the issue. Signed-off-by: Jim Fehlig <jfehlig@novell.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
-rw-r--r--tools/libxl/libxl_dm.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
index bc0bae7a96..d535e11a76 100644
--- a/tools/libxl/libxl_dm.c
+++ b/tools/libxl/libxl_dm.c
@@ -694,6 +694,7 @@ retry_transaction:
if (rc < 0)
goto out_close;
if (!rc) { /* inner child */
+ setsid();
libxl__exec(null, logfile_w, logfile_w,
libxl__abs_path(&gc, info->device_model, libxl_libexec_path()),
args);