web-dev-qa-db-de.com

der laufende Jupyter Notebook Server kann nicht beendet werden

Ich verwende Jupyter Notebook für ein Projekt. Da ich ssh in einen Linux-Cluster bei der Arbeit verwende, verwende ich

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

Dann starte ich das Notebook mit jupyter notebook --no-browser &, damit ich das Terminal weiterverwenden kann. Dann öffne ich auf meinem lokalen Rechner localhost:8000 und mache mich an meine Arbeit.

Mein Problem ist, dass ich mehrmals vergessen habe, den Server zu schließen, indem ich den Prozess in den Vordergrund stellte und ihn mit Ctrl-C abbrach. Stattdessen habe ich mich gerade von der SSH-Sitzung abgemeldet. Jetzt, wenn ich jupyter notebook list starte, 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 möchte natürlich nicht, dass all diese Server auf dem Computer meines Computers laufen, aber ich weiß nicht, wie ich sie schließen soll!

Wenn ich ps starte, 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.

17
Joalito

Also habe ich eine Lösung gefunden.

Da jupyter notebook list Ihnen sagt, auf welchen Ports die Notebook-Server laufen, habe ich mit netstat -tulpn nach den PIDs gesucht. Ich habe die Informationen von http://www.cyberciti.biz/faq/what-process-has-open-linux-port/ erhalten.

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 viel zu suchen, konnte ich die Ports, die ich aus jupyter notebook list und nach den Prozessen, nach denen ich suchte, ausfindig machen konnte (Sie könnten grep verwenden, wenn es zu schwierig wäre, sie zu finden). Dann tötete ich sie mit kill 8337 (oder welcher Nummer auch immer).

18
Joalito

Windows-Systembefehle an der Eingabeaufforderung

Speichern Sie alle an Ihren Notebooks vorgenommenen Änderungen, bevor Sie den Jupyter Notebook-Serverprozess abbrechen.

i) finde die vom Jupyter Notebook Server verwendete Portnummer

jupyter notebook list

ex.)

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

ii) Finde Prozess-IDs, die die gefundene Portnummer von Jupyter Notebook verwenden.

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
  • zeilen finden, deren Wert der zweiten Spalte "8888" entspricht. In obigem Beispiel sind erste, zweite und dritte Zeile Zielzeilen. In diesen Zeilen finden Sie die PID in der letzten Spalte (z. B. 24140).

iii) Jupyter Notebook-Prozess mit gefundener PID beenden

taskkill /PID found_PID /F

ex.)

taskkill /PID 24140 /F
  • / F bedeutet, den Prozess zwangsweise abzubrechen.

Zu Ihrer Information, Jupyter Notebook von Version 5.1 unterstützt den Stop-Befehl wie folgt:

jupyter notebook stop 8888

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

7
Hongsoog

Ich bin auf das gleiche Problem gestoßen und habe die oben genannte Lösung verfolgt. Wollte nur die Lösung etwas klären.

netstat -tulpn

listet alle aktiven Verbindungen auf.

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

in diesem Fall benötigen Sie die PID "19524". Sie können sogar die folgenden Informationen verwenden, um die PID des Ports zu erhalten, den Sie herunterfahren möchten

fuser 8888/tcp

dies gibt Ihnen auch 19524.

kill 19524

wird den Hafen schließen

4
pramithus

Das könnte helfen:

  1. führen Sie jupyter notebook list aus, um die von Jupyter verwendete Portnummer abzurufen. 
  2. führen Sie lsof -n -i4TCP:[port-number] aus, um die PID ..__ abzurufen. Die PID ist das zweite Feld in der Ausgabe.
  3. führen Sie kill -9 [PID] aus, um diesen Prozess zu beenden.
2
ShusenTang

Verwenden Sie den folgenden Befehl, um die Ausführung des Jupyter-Notebooks an Port 8888 zu stoppen: 

fuser -k 8888/tcp 
1
smsarwar

Abschnitt 3.3 sollte auf diesen Abschnitt anwendbar sein . http://jupyter-notebook-beginner-guide.readthedocs.io/de/latest/execute.html

Wenn ein Notebook geöffnet wird, wird automatisch die „Computational Engine“ (Kernel genannt) gestartet. Wenn Sie die Registerkarte des Notebook-Browsers schließen, wird der Kernel nicht heruntergefahren. Stattdessen wird der Kernel weiter ausgeführt, bis er explizit heruntergefahren wird.

Um einen Kernel herunterzufahren, gehen Sie zum zugehörigen Notebook und klicken Sie auf das Menü Datei -> Schließen und Anhalten. Alternativ verfügt das Notebook Dashboard über eine Registerkarte mit der Bezeichnung Running, auf der alle laufenden Notebooks (d. H. Kernels) angezeigt werden. Außerdem können sie heruntergefahren werden (durch Klicken auf die Schaltfläche Herunterfahren).

1
Ceddrick