Sanic作为Win10服务和pyinstaller问题

问题描述

有人试图将sanic服务器构建为Windows服务吗? 我目前正面临着这个问题,并且找不到任何解决方案。

这是我的代码

  • main.py模块
import win32service
import win32event
import servicemanager
import socket
import sys
import sanic_server as Server


class TestService(win32serviceutil.ServiceFramework):
    _svc_name_ = "TestService"
    _svc_display_name_ = "Test Service"
    _svc_description_ = "My service description"

    def __init__(self,args):
        win32serviceutil.ServiceFramework.__init__(self,args)
        self.hWaitStop = win32event.CreateEvent(None,None)
        socket.setdefaulttimeout(60)

    def SvcStop(self):
        self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
        win32event.SetEvent(self.hWaitStop)

    def SvcDoRun(self):
        Server.start_listening()



if __name__ == '__main__':
    if len(sys.argv) == 1:
        servicemanager.Initialize()
        servicemanager.PreparetoHostSingle(TestService)
        servicemanager.StartServiceCtrldispatcher()
    else:
        win32serviceutil.HandleCommandLine(TestService)
  • sanic_server.py模块
from sanic import Sanic

app = Sanic("App Name")


def start_listening():
    app.run(host="0.0.0.0",port=8000)


@app.route('/')
def hello(request):
    return "Hello World!"

如您所见,这非常简单。基本上,问题直接在于运行服务。它尝试开始,但随后突然停止...

安装过程没有任何麻烦,您可以在下面看到它:

enter image description here

但是当我尝试运行时,什么也没发生:

enter image description here

即使我试图从任务管理器中运行它,它也在尝试启动,但随后突然停止。

当我调试时,它可以工作:

enter image description here

如果已经有人遇到过这个问题,请给我一些提示! 预先感谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)