python - 从子进程启动时如何停止 Bottle Web 服务器

标签 python windows console-application subprocess bottle

我想嵌入伟大的Bottle Web 框架转化为小型应用程序(第一个目标是 Windows 操作系统)。由于子流程模块,该应用程序启动了 Bottle Web 服务器。

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

Bottle 应用程序非常简单

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

run(reloader=True)

它将默认的网络服务器启动到 Windows 控制台。

一切似乎都很好,除了我必须按 Ctrl-C 才能关闭 Bottle 网络服务器。我希望主应用程序在关闭时终止网络服务器。我找不到办法做到这一点(不幸的是,p.terminate() 在这种情况下不起作用)

有什么想法吗?

提前致谢

最佳答案

关闭重载服务器有两种方法:

1) 您终止 p(使用 os.kill(p.pid)p.terminate() ),然后更改 'websrv.py 的修改时间' (os.utime('websrv.py')) 触发子进程自动关闭。

2) 使用 os.kill(p.pid, signal.SIGINT) 终止 p,这与 Ctrl-C 关闭相同。

关于python - 从子进程启动时如何停止 Bottle Web 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2643512/

相关文章:

控制台图形帮助!

c# - 使 Windows C# 控制台应用程序在用户点击 TAB 时显示可能的命令

python - Django 错误(外部 IP): Internal Server Error:/favicon. ico

python - 使用时间和日期对象分析数据

windows - Minikube启动 panic :运行时错误:无效的内存地址或nil指针取消引用[信号0xc0000005代码= 0x0 addr = 0x10 pc = 0x8812cf]

c++ - 独占打开文件/锁定文件

python - 两个 SQLAlchemy 声明模型必须共享同一个 declarative_base() 吗?

python - 为什么每次在 hashlib 中调用 hexdigest() 时都会得到不同的哈希值?

C++和上下文结构

C++ Builder 如何将控制台应用程序转换为 VCL 控制台应用程序?