FastAPI 作为 Windows 服务
FastAPI as a Windows service
我正在尝试 运行 FastAPI 作为 windows service.Couldn 找不到 运行 Uvicorn 作为 Window 的任何文档或文章'服务。
我也尝试使用 NSSM,但我的 windows 服务停止了。
我设法 运行 FastAPI with uvicorn 作为 Windows 使用 NSSM 的服务。
我不得不 deploy uvicorn programatically,基本上 运行 uvicorn 直接从您的 Python 脚本,然后使用 NSSM 创建并安装自定义服务。
这是一个基于 FastAPI 的 example 的小示例,但不是 运行 使用命令行中的 uvicorn main:app --reload
将其添加,而是使用您自己的配置添加 uvicorn.run(app, **config)
.
from fastapi import FastAPI
import uvicorn
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
if __name__ == "__main__":
uvicorn.run("main:app", host="127.0.0.1", port=5000, log_level="info")
然后您可以使用标准 nssm install
command
使用 NSSM 安装它
nssm.exe install "FastAPIWindowsService" "C:\Scripts\FastAPIWindowsService\venv\Scripts\python.exe" "C:\Scripts\FastAPIWindowsService\src\main.py"
相应地更改您的服务名称、python.exe 的路径以及脚本的路径。安装后,您的服务应该出现在 Windows 服务管理器中。
希望这对您有所帮助,对您有用!
我正在尝试 运行 FastAPI 作为 windows service.Couldn 找不到 运行 Uvicorn 作为 Window 的任何文档或文章'服务。 我也尝试使用 NSSM,但我的 windows 服务停止了。
我设法 运行 FastAPI with uvicorn 作为 Windows 使用 NSSM 的服务。
我不得不 deploy uvicorn programatically,基本上 运行 uvicorn 直接从您的 Python 脚本,然后使用 NSSM 创建并安装自定义服务。
这是一个基于 FastAPI 的 example 的小示例,但不是 运行 使用命令行中的 uvicorn main:app --reload
将其添加,而是使用您自己的配置添加 uvicorn.run(app, **config)
.
from fastapi import FastAPI
import uvicorn
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
if __name__ == "__main__":
uvicorn.run("main:app", host="127.0.0.1", port=5000, log_level="info")
然后您可以使用标准 nssm install
command
nssm.exe install "FastAPIWindowsService" "C:\Scripts\FastAPIWindowsService\venv\Scripts\python.exe" "C:\Scripts\FastAPIWindowsService\src\main.py"
相应地更改您的服务名称、python.exe 的路径以及脚本的路径。安装后,您的服务应该出现在 Windows 服务管理器中。
希望这对您有所帮助,对您有用!