2016-09-14 60 views
3

我确实使用散景来绘制本地局域网上的传感器数据。 Bokeh从我的​​python应用程序中使用popen启动:Popen("bokeh serve --host=localhost:5006 --host=192.168.8.100:5006", shell=True)如何停止散景服务器?

我想从应用程序中关闭散景服务器。但是,我找不到documentation中的任何内容。另外bokeh serve --help不给任何提示如何做到这一点。

编辑:基于我想出了以下解决方案公认的答案:

 self.bokeh_serve = subprocess.Popen(shlex.split(command), 
          shell=False, stdout=subprocess.PIPE) 

我以前self.bokeh_serve.kill()结束的过程。也许.terminate()会更好。我会尝试。

回答

1

不知道背景虚化,并假设你使用Python> = 3.2或Linux,你可以尝试用SIGTERMSIGINTSIGHUP杀死进程,用os.kill()Popen.pid甚至更​​好Popen.send_signal()。如果散景具有合适的信号处理程序,它甚至会彻底关闭。

但是,使用选项shell=False可能会更好,因为使用shell=True时,信号将发送到shell而不是实际进程。