diff --git a/notebook/notebookapp.py b/notebook/notebookapp.py index 3985316f09..2417b3c38d 100755 --- a/notebook/notebookapp.py +++ b/notebook/notebookapp.py @@ -294,6 +294,7 @@ def init_handlers(self, settings): handlers.extend(load_handlers('services.nbconvert.handlers')) handlers.extend(load_handlers('services.kernelspecs.handlers')) handlers.extend(load_handlers('services.security.handlers')) + handlers.extend(load_handlers('services.shutdown')) handlers.append( (r"/nbextensions/(.*)", FileFindHandler, { diff --git a/notebook/services/shutdown.py b/notebook/services/shutdown.py new file mode 100644 index 0000000000..78d1f2ad6e --- /dev/null +++ b/notebook/services/shutdown.py @@ -0,0 +1,15 @@ +"""HTTP handler to shut down the notebook server. +""" +from tornado import web, ioloop +from notebook.base.handlers import IPythonHandler + +class ShutdownHandler(IPythonHandler): + @web.authenticated + def post(self): + self.log.info("Shutting down on /api/shutdown request.") + ioloop.IOLoop.current().stop() + + +default_handlers = [ + (r"/api/shutdown", ShutdownHandler), +]