web-dev-qa-db-ja.com

実行中のjupyter Notebookサーバーを終了できません

プロジェクトにJupyter Notebookを使用しています。私は仕事中にLinuxクラスタにsshするので

ssh -Y -L 8000:localhost:8888 user@Host

次に、jupyter notebook --no-browser &を使用してノートブックを起動し、端末の使用を継続できるようにします。次に、ローカルマシンでlocalhost:8000を開き、作業に取りかかります。

私の問題は、プロセスをフォアグラウンドにし、Ctrl-Cで強制終了してサーバーを閉じるのを何度も忘れたことです。代わりに、sshセッションからログアウトしました。 jupyter notebook listを実行すると、

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

私は明らかにこれらのサーバーのすべてを私の仕事のマシンで実行したくありませんが、それらを閉じる方法がわかりません!

Psを実行しても何も得られません。

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

Jupyter 4.1.0がインストールされています。

19
Joalito

そこで解決策を見つけました。

jupyter notebook listはノートブックサーバーが実行されているポートを示しているので、netstat -tulpnを使用してPIDを探しました 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          

一生懸命見なくても、jupyter notebook listとそれらを実行しているプロセスから探す必要のあるポートを見つけることができました(見つけにくい場合はgrepを使用できます)。その後、kill 8337(または関連付けられた任意の数)でそれらを殺しました。

20
Joalito

コマンドプロンプトのWindowsシステムコマンド

Jupyterノートブックサーバープロセスを強制終了する前に、ノートブックで行ったすべての変更を保存するように注意してください。

i)jupyter Notebookサーバーが使用するポート番号を見つける

jupyter notebook list

例)

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

ii)jupyter Notebookの見つかったポート番号を使用するプロセスIDを見つける

netstat -ano | find "found portnumber"

例)

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
  • 2番目の列の値が「8888」に等しい行を検索します。上記の例では、1行目、2行目、3行目がターゲット行です。これらの行では、最後の列でPIDを見つけることができます(例:24140)。

iii)PIDが見つかったjupyter Notebookプロセスを強制終了します

taskkill /PID found_PID /F

例)

taskkill /PID 24140 /F
  • / Fは、プロセスを強制終了することを意味します。

参考までに、バージョン5.1のJupyterノートブックは、次のように停止コマンドをサポートしています。

jupyter notebook stop 8888

https://github.com/jupyter/notebook/issues/195 を参照してください

8
Hongsoog

私は同じ問題にぶつかり、上記の解決策に従いました。解決策を少し明確にしたかっただけです。

netstat -tulpn

すべてのアクティブな接続をリストします。

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

この場合、PID「19524」が必要になります。以下を使用して、シャットダウンしようとしているポートのPIDを取得することもできます。

fuser 8888/tcp

これにより19524も得られます。

kill 19524

ポートをシャットダウンします

5
pramithus

次のコマンドを使用して、ポート8888で実行されているJupyterノートブックを停止します。

fuser -k 8888/tcp 
3
smsarwar

これは役立つかもしれません:

  1. 実行jupyter notebook list jupyterが使用するポート番号を取得します。
  2. 実行lsof -n -i4TCP:[port-number] PIDを取得します。 PIDは、出力の2番目のフィールドです。
  3. 実行kill -9 [PID]このプロセスを強制終了します。
3
ShusenTang

セクション3.3はこれに適用されるべきです。 http://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/execute.html

ノートブックを開くと、その「計算エンジン」(カーネルと呼ばれる)が自動的に開始されます。ノートブックのブラウザタブを閉じても、カーネルはシャットダウンされません。代わりに、明示的にシャットダウンされるまでカーネルは実行され続けます。

カーネルをシャットダウンするには、関連するノートブックに移動し、[ファイル]-> [閉じる]および[停止]メニューをクリックします。別の方法として、ノートブックダッシュボードには、実行中のすべてのノートブック(つまりカーネル)を表示し、(シャットダウンボタンをクリックして)シャットダウンできるようにするRunningという名前のタブがあります。

1
Ceddrick