我在Python3中编写了一个非常简单的应用程序,它只是通过Python http.server.BaseHTTPRequestHandler,HTTPServer模块从POST输入运行某些服务器端命令。
目前,我的代码如下:
mysql_tools.f_print("Starting HTTP server on %s:%s.." % SERVER_ADDRESS)
httpd = HTTPServer(SERVER_ADDRESS, S)
mysql_tools.f_print("Server started. Now serving port %s." % SERVER_ADDRESS[1])
httpd.serve_forever()
其中S是BaseHTTPRequestHandler类。
现在,我希望能够拥有控制台输入。应用程序在CMD窗口中运行,只显示"服务器已启动。现在服务端口1010"但是我希望能够键入,例如," stop"进入CMD窗口并相应地处理,或者重新启动"或者" forcerequest"等等。但是你可能知道,由于" serve_forever()"它没有任何输入,它忽略了任何未来的代码行,因为它似乎无限循环。
任何建议或替代方式为港口提供服务都会受到批评。
答案 0 :(得分:1)
AFAIK,没有办法,至少不是那个窗口,(它不是由于 serve_forever ),任何服务器都会这样做,它只是在听SIGTERM( CTRL + C 或 shutdown())。