2016-07-21 17 views
16

Ich benutze Jupyter Notebook für ein Projekt. Da ich bei der Arbeit in einem Linux-Cluster ssh verwende ichkann jupyter notebook server nicht beenden

ssh -Y -L 8000:localhost:8888 [email protected] 

Dann beginne ich das Notebook mit jupyter notebook --no-browser & so, dass ich das Terminal weiter verwenden. Dann öffne ich auf meiner lokalen Maschine localhost:8000 und gehe meiner Arbeit nach.

Mein Problem ist, dass ich mehrmals vergessen habe, den Server zu schließen, indem ich den Prozess in den Vordergrund stelle und ihn mit Ctrl-C lösche. Stattdessen habe ich mich gerade aus der SSH-Sitzung ausgeloggt. Nun, wenn ich jupyter notebook list laufen bekomme ich

Currently running servers: 
http://localhost:8934/ :: /export/home/jbalsells 
http://localhost:8870/ :: /export/home/jbalsells 
http://localhost:8892/ :: /export/home/jbalsells 
http://localhost:8891/ :: /export/home/jbalsells 
http://localhost:8890/ :: /export/home/jbalsells 
http://localhost:8889/ :: /export/home/jbalsells 
http://localhost:8888/ :: /export/home/jbalsells 

ich natürlich nicht alle dieser Server auf meine Arbeit Maschine laufen will, aber ich weiß nicht, wie sie es schließen!

Als ich ps laufen bekomme ich nichts:

PID TTY   TIME CMD 
12678 pts/13 00:00:00 bash 
22584 pts/13 00:00:00 ps 

Ich habe Jupyter 4.1.0 installiert.

Antwort

14

So fand ich eine Lösung.

Da jupyter notebook list erfahren Sie, welche Ports der Notebook-Server läuft auf I für die PIDs mit netstat -tulpn sah bekam ich die Informationen von http://www.cyberciti.biz/faq/what-process-has-open-linux-port/

Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local Address   Foreign Address   State  
PID/Program name  
tcp  0  0 0.0.0.0:8649   0.0.0.0:*    LISTEN  
-     
tcp  0  0 0.0.0.0:139    0.0.0.0:*    LISTEN  
-     
tcp  0  0 0.0.0.0:33483   0.0.0.0:*    LISTEN  
-     
tcp  0  0 0.0.0.0:5901   0.0.0.0:*    LISTEN  
39125/Xvnc   

Ohne zu hart Suche konnte ich die Ports finden Ich wusste zu Suchen Sie von jupyter notebook list und die Prozesse, die sie ausführen (Sie könnten grep verwenden, wenn es zu schwer war, sie zu finden). Dann tötete ich sie mit kill 8337 (oder welcher Zahl auch immer verbunden war).

+1

Vorschläge für Windows? :) – Roelant

+0

Es sieht aus wie in einem aktuellen Update 'Jupyter Notebook Stop 8888' wird funktionieren, um das Notebook auf Port 8888 zu stoppen. – fizzyh2o

1

Abschnitt 3.3 sollte darauf anwendbar sein. http://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/execute.html

Wenn ein Notebook geöffnet wird, seine „Computational Engine“ (die so genannte Kernel) wird automatisch gestartet. Wenn Sie die Registerkarte des Notebook-Browsers schließen, wird der Kernel nicht heruntergefahren, stattdessen läuft der Kernel weiter, bis er explizit heruntergefahren wird.

Um einen Kernel herunterzufahren, gehen Sie zum zugehörigen Notizbuch und klicken Sie auf Menü Datei -> Schließen und halten. Alternativ dazu verfügt das Notebook-Dashboard über eine Registerkarte mit dem Namen Running, die alle laufenden Notizbücher (z. B. Kernel) anzeigt und sie herunterfährt (indem Sie auf eine Schaltfläche zum Herunterfahren klicken).

+2

Ich bin nicht versuchen, das Notizbuch zu schließen, aber der Server (die so genannte Jupyter Notebook App) – Joalito

+0

@Joalito Entschuldigung ich missverstanden. – Ceddrick

4

Ich stieß auf das gleiche Problem und folgte der oben beschriebenen Lösung. Ich wollte nur die Lösung ein wenig aufklären.

netstat -tulpn 

listet alle aktiven Verbindungen auf.

tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN  19524/python 

benötigen Sie in diesem Fall die PID "19524". Sie können sogar Folgendes verwenden, um die PID des Ports zu erhalten, den Sie versuchen herunterzufahren.

fuser 8888/tcp 

Dies gibt Ihnen auch 19524.

kill 19524 

wird heruntergefahren den Port

+0

Sie Methode ist viel sauberer und hilfreich. –

4

Windows-Systeme auf Befehl Befehle Prompt

vorsichtig sein, um alle Änderungen in Ihrem Notebooks gemacht zu speichern, bevor der jupyter Notebook-Server-Prozess töten.

i) die Portnummer, die von jupyter Notebook Server

jupyter notebook list 

ex.)

jupyter notebook list 
Currently running servers: 
http://127.0.0.1:8888/ :: D:\kimkk\Documents\JupyterNotebook 

ii) finden Prozess-IDs, die die gefundene Portnummer jupyter Notebook verwenden finden

netstat -ano | find "found portnumber" 

ex.)

netstat -ano | find "8888" 

    TCP 127.0.0.1:8888   0.0.0.0:0    LISTENING  24140 
    TCP 127.0.0.1:8888   127.0.0.1:55588  ESTABLISHED  24140 
    TCP 127.0.0.1:8888   127.0.0.1:55612  ESTABLISHED  24140 
    TCP 127.0.0.1:55588  127.0.0.1:8888   ESTABLISHED  6492 
    TCP 127.0.0.1:55612  127.0.0.1:8888   ESTABLISHED  6492 
  • Fund Zeilen mit zweitem Spalte Wert gleich zu "8888". Im obigen Beispiel sind die ersten, zweiten und dritten Zeilen Zielzeilen. In diesen Zeilen finden Sie PID in der letzten Spalte (Bsp. 24140).

iii) töten jupyter Notebook Prozess mit PID gefunden

taskkill /PID found_PID /F 

ex.)

taskkill /PID 24140 /F 
  • /F bedeutet forcely den Prozess töten.

FYI, Jupyter Notebook ab Version 5.1 unterstützt Stopp-Befehl wie folgt:

jupyter notebook stop 8888 

zu https://github.com/jupyter/notebook/issues/1950 siehe