3

以下のコード:

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+を使ってトルネードサーバーを止めたいのですが、CMDでは+で止まりません。PauseBreakCtrlC

Ctrl+ PauseBreakCMD を停止して python.exe を終了しますが、「停止」は表示されません。

WindowsでKeyboardInterruptを入力するには?

4

1 に答える 1

3

Windows では、select()(IOLoop が内部で使用する) 関数は中断できません ( http://www.velocityreviews.com/forums/t722370-windows-select-select-timeout-and-keyboardinterrupt.html )。最も簡単な回避策は、a を開始するPeriodicCallbackことです (何もする必要はありません。空の関数だけです)。コールバックがトリガーされると、IOLoop が起動し、KeyboardInterrupt 例外が発生します。

于 2013-11-06T22:17:56.537 に答える