在官方网站it is said上:
打开笔记本时,会自动启动其“计算引擎”(称为内核)。关闭笔记本浏览器选项卡,不会关闭内核,而是内核将继续运行,直到明确关闭。“
是否可以配置iPython服务器以便内核与相关选项卡一起被终止?
答案 0 :(得分:6)
After some research and numerous tries the solution is extremely simple. Add at the end of the file profile/static/custom/custom.js
the following code:
$( window ).unload(function() {
IPython.notebook.kernel.kill();
});
Works for me perfectly! (tried on Chrome)
答案 1 :(得分:2)
您可以在jupyter中编写扩展程序
(more about jupyter notebook extensions)。
我无法在早期版本的IPython中找到有关笔记本扩展的任何信息。但是,Notebook扩展程序可以自定义,比cf set-env boldStartApp JBP_CONFIG_IBMJDK "version: 1.8.+"
cf set-env fournHubApp JVM 'openjdk'
cf set-env fournHubApp JBP_CONFIG_OPENJDK "version: 1.8.+"
cf restage boldStartApp
cf restage fournHubApp
小心custom.js
。我的chrome 43.0.2357.130在重定向时没有运行unload
。
我想为Nikolay回答写评论,但我没有足够的分数......
答案 2 :(得分:2)
我认为IPython.notebook.session.delete()
优于IPython.notebook.kernel.kill()
。
window.addEventListener('unload', function() {
// For Firefox
IPython.notebook.session.delete();
});
window.onbeforeunload = function () {
// For Chrome
IPython.notebook.session.delete();
};
因为kernel.kill()
会杀死内核。它不会告诉笔记本的会员管理员杀死它。
因此,当您重新打开由KernelError
关闭的相同ipynb文件(关闭的标签页或窗口)时,sessionmanager会在被查杀后提升kernel.kill()
。
在GoogleChrome上,移动页面不会触发卸载事件。
所以,我认为你也应该挂钩beforeunload
事件
但是addEventListener('beforeunload', ...)
挂钩并不起作用。
所以我尝试了window.onbeforeunload =
,它运行正常。