2016-09-14 7 views
3

ローカルLANにセンサーデータを表示するにはbokehを使用します。 Bokehは私のpythonアプリケーションからpopenを使って起動します:Popen("bokeh serve --host=localhost:5006 --host=192.168.8.100:5006", shell=True)bokehサーバーを停止するには?

私はアプリケーション内からbokehサーバを閉じたいと思います。しかし、documentationには何も見つかりません。また、bokeh serve --helpはそれを行う方法を示唆していません。

編集:私はプロセスを終了するためにself.bokeh_serve.kill()を使用

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

:受け入れ答えに基づいて、私は、次の解決策を考え出しました。たぶん.terminate()が良いでしょう。やってみます。

答えて

1

ボケ味を知り、あなたは> = 3.2またはLinuxのPythonを使用することを想定しなければ、あなたはPopen.pidまたはPopen.send_signal()より良いとos.kill()を使用して、SIGTERMSIGINTまたはSIGHUPでプロセスを強制終了しようとすることができます。 bokehに適切なシグナルハンドラがある場合、正常にシャットダウンします。

ただし、shell=Trueを指定すると、信号は実際のプロセスではなくシェルに送信されるため、オプションshell=Falseを使用する方がよい場合があります。

関連する問題