如何启动FastAPI应用作为一个windwos服务

本文介绍了如何使用FastAPI创建一个简单的HTTP服务,并通过NSSM将其作为Windows服务进行部署。主要内容包括设置`main.py`文件,使用NSSM安装和配置服务,以及启动和停止服务的命令。还提供了一个示例BAT脚本来自动化安装过程,并强调了指定日志文件路径的重要性。
摘要由CSDN通过智能技术生成

如何使用FastAPI

请查看fastAPI官网例子,说的很详细了,不在赘述

如何作为服务启动

例如你有一个main.py如下:

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 部署,你可以使用nssm install

nssm.exe install “FastAPIWindowsService” “C:\Scripts\FastAPIWindowsService\venv\Scripts\python.exe” “C:\Scripts\FastAPIWindowsService\src\main.py”

更详细的NSS指令请参考NSSM指令文档

NSSM参考示例

我写了一个bat文件,特别注意的是当指定App的log信息文件位置时,确保目录存在

@setlocal enableextensions
@echo off
@cd /d "%~dp0"

REM file directory
set cwd=%~dp0%
md log


REM Uninstall old services
nssm stop helloService

nssm remove helloService confirm

pip install fastapi
pip install uvicorn

nssm.exe install "helloService" "C:\Users\%USERNAME%\AppData\Local\Programs\Python\Python39\python.exe" "%cwd%__pycache__\main.cpython-39.pyc"

nssm set helloService Start SERVICE_AUTO_START
nssm set helloService DisplayName "helloService"
::nssm set helloService AppParameters "-TCPport 9000"
nssm set helloService AppStdout "%cwd%\stdout.log"
nssm set helloService AppStderr "%cwd%\stderr.log"

REM Start services
nssm start FeaturePointService

windows 删除服务

管理员权限启动命令行输入:sc delete FeaturePointService
在这里插入图片描述

参考文档
FastAPI as a Windows service

How to fix SERVICE_PAUSED error on starting nssm server
windows delete service

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值