2015-09-28 19 views
8

を閉じた上でカーネルをシャットダウンするように設定:ノートブックが開かれるとiPythonノート - 公式サイト<a href="http://jupyter-notebook-beginner-guide.readthedocs.org/en/latest/execute.html#close-a-notebook-kernel-shut-down" rel="noreferrer">it is said</a>上のタブ

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

カーネルがタブ

+1

いくつかのJavaScriptがそれをしますが、それは['onunload'](http://stackoverflow.com/questions/3888902/javascript-detect-browser-close-tab-close-browser)イベントなので、リンクをたどったり、戻るボタンを使用した場合にも起動します。 –

+1

ノートブックテンプレートに余分なHTMLコードを挿入するにはどうすればよいですか?また、現在のカーネルを強制終了するAPIは何ですか?私はおそらくjavascriptのコンソールからそれを推測することができます。 –

+1

ユーザーは 'profile/static/custom/custom.js'ファイルにjavascriptを追加できます。これで試してみる。 –

答えて

6

いくつかの研究と多数の試行後、溶液は非常に簡単ですファイルprofile/static/custom/custom.jsの末尾に次のコードを追加します。?。!完全に私のため

$(window).unload(function() { 
    IPython.notebook.kernel.kill(); 
}); 

ワークス(Chromeで試してみました)

2

延長番号は (more about jupyter notebook extensions)です。 以前のバージョンのIPythonでは、ノートブック拡張機能に関する情報が見つかりませんでした。ただし、ノートブックの拡張機能はカスタマイズ可能で、はるかにきれいです。custom.js

unloadに注意してください。私のchrome 43.0.2357.130は、リダイレクト時にunloadを実行しません。

私はIPython.notebook.session.delete()IPython.notebook.kernel.kill()よりも優れていると思う

0

...私はニコライの答えにコメントを書きたかったが、私は十分なポイントを持っていません。

window.addEventListener('unload', function() { 
    // For Firefox 
    IPython.notebook.session.delete(); 
}); 

window.onbeforeunload = function() { 
    // For Chrome 
    IPython.notebook.session.delete(); 
}; 

理由

kernel.kill()のでちょうどカーネルを殺すでしょう。それはノートのセッションマネージャーにそれを殺すことを知らせません。 したがって、終了した同じipynbファイルをkernel.kill()(閉じたタブまたはウィンドウ)で再度開くと、セッションマネージャが終了すると、sessionmanagerによってKernelErrorが呼び出されます。 GoogleChromeをオンアンロード

について

は、イベントがページを移動するには解雇されることはありませんアンロードします。 だから、あなたもフックbeforeunloadイベント

フックする必要があると思うが、addEventListener('beforeunload', ...)でフッキングは動作しませんでした。 だから私はwindow.onbeforeunload =を試して、それは正常に動作します。

関連する問題