2016-09-14 59 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而不是實際進程。