【问题标题】:flask-tornado CTRL+C termination in windowswindows中的flask-tornado CTRL+C终止
【发布时间】:2013-11-17 08:56:13
【问题描述】:

以下代码:

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 服务器,但是 Ctrl+C 不会在 CMD 中停止它。

Ctrl+PauseBreak 确实会停止 CMD 并终止 python.exe,但不会显示“停止”。

如何在windows中输入KeyboardInterrupt?

【问题讨论】:

    标签: python windows python-2.7 flask tornado


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多