aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoradsharma@los-vmm.sc.intel.com <adsharma@los-vmm.sc.intel.com>2005-08-15 12:50:25 -0800
committeradsharma@los-vmm.sc.intel.com <adsharma@los-vmm.sc.intel.com>2005-08-15 12:50:25 -0800
commit7e359b2621f5423090a07876347b7eefe66802ae (patch)
tree65e8fe2983e86a3963937aed0d74c2f55c15ac73
parentb5949647280bfbfb5bab14958be80dd91383ccdd (diff)
downloadxen-7e359b2621f5423090a07876347b7eefe66802ae.tar.gz
xen-7e359b2621f5423090a07876347b7eefe66802ae.tar.bz2
xen-7e359b2621f5423090a07876347b7eefe66802ae.zip
Don't leave vncviewer processes running if xm create fails
Signed-off-by: Edwin Zhai <edwin.zhai@intel.com> Signed-off-by: Arun Sharma <arun.sharma@intel.com>
-rw-r--r--tools/python/xen/xm/create.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/tools/python/xen/xm/create.py b/tools/python/xen/xm/create.py
index d20e47352e..72aa2a3f63 100644
--- a/tools/python/xen/xm/create.py
+++ b/tools/python/xen/xm/create.py
@@ -592,9 +592,14 @@ def choose_vnc_display():
return d
return None
+vncpid = None
+
def spawn_vnc(display):
- os.system("vncviewer -log *:stdout:0 -listen %d &" %
- (VNC_BASE_PORT + display))
+ vncargs = (["vncviewer" + "-log", "*:stdout:0",
+ "-listen", "%d" % (VNC_BASE_PORT + display) ])
+ global vncpid
+ vncpid = os.spawnvp(os.P_NOWAIT, "vncviewer", vncargs)
+
return VNC_BASE_PORT + display
def preprocess_vnc(opts, vals):
@@ -639,6 +644,9 @@ def make_domain(opts, config):
else:
dominfo = server.xend_domain_create(config)
except XendError, ex:
+ import signal
+ if vncpid:
+ os.kill(vncpid, signal.SIGKILL)
opts.err(str(ex))
dom = sxp.child_value(dominfo, 'name')