You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用sc.exe create替代NSSM部署Uvicorn/FastAPI服务启动失败求助

使用sc.exe create替代NSSM部署Uvicorn/FastAPI服务启动失败求助

各位大佬好,我现在遇到个棘手的问题,想请教下大家。因为当前环境不建议使用NSSM,之前其他服务都是用sc create来部署的,所以想统一用这个方案把我的FastAPI服务也改成Windows服务,但启动的时候一直失败,卡了好一会儿了。

先跟大家说下我的操作过程:
我用sc create创建服务的命令如下,执行后显示创建成功:

F:\PythonAPI>sc create FastAPIService ^
More?  binPath= "C:\Windows\System32\cmd.exe /c \"C:\PATH\python.exe -m uvicorn pythonapi:app --host 0.0.0.0 --port 8000\"" ^
More?  start= auto
[SC] CreateService SUCCESS

但当我执行启动命令时,直接报错:

F:\FPMAPI\PythonAPI>sc start FastAPIService
[SC] StartService FAILED 1053:

The service did not respond to the start or control request in a timely fashion.

我试过各种变体:比如把启动逻辑写到.cmd文件或者.bin文件里再调用,甚至调整过binPath里的引号和路径格式,但不管怎么改,都是报这个1053错误,上面这个是我试过最直接的命令示例。

另外我也用NSSM测试过部署,过程特别顺畅,服务能正常启动运行,所以应该可以排除FastAPI代码本身的问题——我的主文件是pythonapi.py,还有个buildpythonapi.py用来读取配置变量启动Uvicorn,这两个文件都是没问题的。

现在实在搞不懂,为啥NSSM能行,换成sc create就卡在启动环节了?是不是sc create对这类Python Web服务的启动逻辑有特殊要求?或者我的binPath写法哪里不对?有没有什么调试的方向或者解决办法呀?麻烦大家给支支招,谢谢了!

火山引擎 最新活动