Commit a1764bc3458b605cedb33ff89c3ac2776ddd153a

Authored by Miguel Barão
1 parent 1edf739f
Exists in master and in 1 other branch dev

- Ctrl-C asks for confirmation before exiting

Showing 2 changed files with 15 additions and 6 deletions   Show diff stats
@@ -7,8 +7,6 @@ @@ -7,8 +7,6 @@
7 - periodicamente, cada user faz um post keep-alive. warning nos logs se offline. 7 - periodicamente, cada user faz um post keep-alive. warning nos logs se offline.
8 - Cada pergunta respondida é logo submetida. 8 - Cada pergunta respondida é logo submetida.
9 - submissao faz um post ajax. 9 - submissao faz um post ajax.
10 -  
11 -- ctrl-c should ask for confirmation before exiting.  
12 - eventos unfocus? 10 - eventos unfocus?
13 - servidor nao esta a lidar com eventos scroll/resize. ignorar? 11 - servidor nao esta a lidar com eventos scroll/resize. ignorar?
14 12
@@ -46,6 +44,7 @@ @@ -46,6 +44,7 @@
46 44
47 # FIXED 45 # FIXED
48 46
  47 +- ctrl-c should ask for confirmation before exiting.
49 - md_to_html() nao usa o segundo argumento q. pode retirar-se dos templates? 48 - md_to_html() nao usa o segundo argumento q. pode retirar-se dos templates?
50 - config/logger.yaml ainda é do cherrypy... 49 - config/logger.yaml ainda é do cherrypy...
51 - uniformizar question.py com a de aprendizations... 50 - uniformizar question.py com a de aprendizations...
@@ -9,7 +9,7 @@ import json @@ -9,7 +9,7 @@ import json
9 import base64 9 import base64
10 import uuid 10 import uuid
11 # from mimetypes import guess_type 11 # from mimetypes import guess_type
12 - 12 +import signal
13 13
14 # packages 14 # packages
15 import tornado.ioloop 15 import tornado.ioloop
@@ -314,6 +314,14 @@ class AdminHandler(BaseHandler): @@ -314,6 +314,14 @@ class AdminHandler(BaseHandler):
314 314
315 315
316 # ------------------------------------------------------------------------- 316 # -------------------------------------------------------------------------
  317 +def signal_handler(signal, frame):
  318 + r = input(' --> Stop webserver? (yes/no) ')
  319 + if r in ('yes', 'YES'):
  320 + tornado.ioloop.IOLoop.current().stop()
  321 + logging.critical('Webserver stopped.')
  322 + sys.exit(0)
  323 +
  324 +# -------------------------------------------------------------------------
317 # Tornado web server 325 # Tornado web server
318 # ------------------------------------------------------------------------- 326 # -------------------------------------------------------------------------
319 def main(): 327 def main():
@@ -370,14 +378,16 @@ def main(): @@ -370,14 +378,16 @@ def main():
370 http_server.listen(8443) 378 http_server.listen(8443)
371 379
372 # --- run webserver 380 # --- run webserver
373 - logging.info('Webserver running...') 381 + signal.signal(signal.SIGINT, signal_handler)
374 382
375 try: 383 try:
  384 + logging.info('Webserver running... (Ctrl-C to stop)')
376 tornado.ioloop.IOLoop.current().start() # running... 385 tornado.ioloop.IOLoop.current().start() # running...
377 - except KeyboardInterrupt: 386 + except Exception:
  387 + logging.critical('Webserver stopped.')
378 tornado.ioloop.IOLoop.current().stop() 388 tornado.ioloop.IOLoop.current().stop()
  389 + raise
379 390
380 - logging.critical('Webserver stopped.')  
381 391
382 # ------------------------------------------------------------------------- 392 # -------------------------------------------------------------------------
383 if __name__ == "__main__": 393 if __name__ == "__main__":