From e32031f78cc8e9dbf3cf0732195332fb8e4e4321 Mon Sep 17 00:00:00 2001 From: Kevin Bates Date: Thu, 6 Aug 2020 18:20:23 -0700 Subject: [PATCH] Remove unnecessary import of bind_unix_socket Also found that windows pid detection is not reliable, so added extra check to detect server has been stopped. --- notebook/notebookapp.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/notebook/notebookapp.py b/notebook/notebookapp.py index 74202aa45..dc7c84c57 100755 --- a/notebook/notebookapp.py +++ b/notebook/notebookapp.py @@ -443,7 +443,7 @@ def shutdown_server(server_info, timeout=5, log=None): """ from tornado import gen from tornado.httpclient import AsyncHTTPClient, HTTPClient, HTTPRequest - from tornado.netutil import bind_unix_socket, Resolver + from tornado.netutil import Resolver url = server_info['url'] pid = server_info['pid'] resolver = None @@ -524,7 +524,15 @@ class NbserverStopApp(JupyterApp): def _shutdown_or_exit(self, target_endpoint, server): print("Shutting down server on %s..." % target_endpoint) - if not self.shutdown_server(server): + server_stopped = self.shutdown_server(server) + if not server_stopped and sys.platform.startswith('win'): + # the pid check on Windows appears to be unreliable, so fetch another + # list of servers and ensure our server is not in the list before + # sending the wrong impression. + servers = list(list_running_servers(self.runtime_dir)) + if server not in servers: + server_stopped = True + if not server_stopped: sys.exit("Could not stop server on %s" % target_endpoint) @staticmethod