diff options
author | adsharma@los-vmm.sc.intel.com <adsharma@los-vmm.sc.intel.com> | 2005-08-15 12:50:25 -0800 |
---|---|---|
committer | adsharma@los-vmm.sc.intel.com <adsharma@los-vmm.sc.intel.com> | 2005-08-15 12:50:25 -0800 |
commit | 7e359b2621f5423090a07876347b7eefe66802ae (patch) | |
tree | 65e8fe2983e86a3963937aed0d74c2f55c15ac73 | |
parent | b5949647280bfbfb5bab14958be80dd91383ccdd (diff) | |
download | xen-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.py | 12 |
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') |