导语

 最近接触到Jupyter notebook,关于什么是Jupyter Notebook,这里引用一段官方的话帮助了解一下:
Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。
 后面转用Jupyter Lab,对于用户界面进行了提升,适合多文档协助工作,而且Lab同样是可扩展,插件非常丰富,继承了Jupyter Notebook的优点。

思路

 但是在用这两个的过程中碰到一些问题,就是当需要控制Jupyter启动时候,非常麻烦,虽然可以修改配置,但是总要手动输入命令启动服务,而一些日志信息,进程信息获取同样也十分不方便。
具体有两种做法:

  1. 第一种就是使用Jupypter的Docker镜像,启动容器
  2. 第二种通过Shell脚本控制Jupyter的启动,停止,重启等操作;

 关于第一种做法,其实很简单就是下载镜像,监控docker服务,第二种是之前写过这类服务的启动脚本,这里就改一下即可,第二种本篇主要讲的。

配置

首先需要添加配置文件,如果生成过配置文件进入配置目录:

 jupyter notebook --generate-config

配置目录:

脚本控制Jupyter启动、停止、重启

jupyter.sh脚本控制服务,jupyter.pid记录服务运行进程PID,jupyter.log记录服务的前台输出的日志;

代码

通过PID文件中记录的PID号,检查服务进程是否正常运行:

脚本控制Jupyter启动、停止、重启

启动服务,判断服务进程是否在后台中正常运行,如果有则忽略返回正在运行,如果没有则通过nohup将服务进程挂在后台中启动运行;

脚本控制Jupyter启动、停止、重启

停止服务,判断服务进程后台运行情况,然后根据PID,杀掉后台进程

脚本控制Jupyter启动、停止、重启

检查状态,检查后台进程服务,输出PID信息

脚本控制Jupyter启动、停止、重启

最后根据脚本传入的第一个参数判断需要的操作:

脚本控制Jupyter启动、停止、重启

总体来说,脚本很简单,如果需要一些其他的功能,可以再这种基础上开发,有兴趣的同学可以在我的github地址上获取:
https://github.com/libuliduobuqiuqiu/Jupyter_Control

参考链接:
https://www.jianshu.com/p/91365f343585
https://jupyterlab.readthedocs.io/en/stable/getting_started/overview.html