Windows中的flask-tornado CTRL+C终止

2024-05-29 09:39:07 发布

您现在位置:Python中文网/ 问答频道 /正文

以下代码:

from tornado.wsgi import WSGIContainer
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop  


def start(app, port=8080):  
      http_server = HTTPServer(WSGIContainer(app))
      http_server.listen(port)
      try:
          IOLoop.instance().start()
      except keyboardInterrupt:
          print "stop"
          IOLoop.instance().stop()

我想在Windows中使用CTRL+CCTRL+PauseBreak来停止tornado服务器,但在CMD中,CTRL+C不会停止它。在

Ctrl+PauseBreak会停止命令并终止python.exe,但不显示“停止”。在

如何在windows中输入键盘中断?在


Tags: instancefromimportapphttpserverportstart
1条回答
网友
1楼 · 发布于 2024-05-29 09:39:07

在Windows上,select()函数(IOLoop在内部使用)是不可中断的(http://www.velocityreviews.com/forums/t722370-windows-select-select-timeout-and-keyboardinterrupt.html)。最简单的解决方法是启动一个PeriodicCallback(它不需要做任何事情,只是一个空函数);当回调被触发时,IOLoop将唤醒,并引发KeyboardInterrupt异常。在

相关问题 更多 >

    热门问题