diff --git a/IPython/frontend/html/notebook/notebookapp.py b/IPython/frontend/html/notebook/notebookapp.py
index 8f4f10a38..a43842e50 100644
--- a/IPython/frontend/html/notebook/notebookapp.py
+++ b/IPython/frontend/html/notebook/notebookapp.py
@@ -449,11 +449,20 @@ class NotebookApp(BaseIPythonApplication):
self.port = port
break
+ def init_signal(self):
+ signal.signal(signal.SIGINT, self._handle_signal)
+ signal.signal(signal.SIGTERM, self._handle_signal)
+
+ def _handle_signal(self, sig, frame):
+ self.log.critical("received signal %s, stopping", sig)
+ ioloop.IOLoop.instance().stop()
+
@catch_config_error
def initialize(self, argv=None):
super(NotebookApp, self).initialize(argv)
self.init_configurables()
self.init_webapp()
+ self.init_signal()
def cleanup_kernels(self):
"""shutdown all kernels