一千萬個為什麽

搜索

從子進程啟動時如何停止Bottle Web服務器

我想將優秀的 Bottle Web框架嵌入到一個小應用程序中(第一個目標是Windows操作系統)。由於子進程模塊,這個應用程序啟動了瓶子web服務器。

import subprocess
p = subprocess.Popen('python websrv.py')

瓶子應用程序非常簡單

@route("/")
def index():
    return template('index')

run(reloader=True)

它將默認Web服務器啟動到Windows控制臺。

除了必須按Ctrl-C關閉瓶子網絡服務器這一事實外,一切似乎都沒問題。我希望主應用程序在關閉時終止Web服務器。我找不到辦法做到這一點(不幸的是,p.terminate()在這種情況下不起作用)

任何想法?

提前致謝

最佳答案

關閉重新加載服務器有兩種方法:

1)終止p(使用 os.kill(p.pid)p.terminate()),然後更改'websrv.py'的修改時間(< code> os.utime('websrv.py'))觸發子進程的自動關閉。

2)使用 os.kill(p.pid,signal.SIGINT)終止p,這與 Ctrl-C shutdown相同。

轉載註明原文: 從子進程啟動時如何停止Bottle Web服務器