当使用JupyterHub时,Service会被定义为与Hub的REST API交互的进程。Service可能实现特定动作或任务,比如关闭single user notebook server等。这里就通过cull_idle_servers
作为说明。
API Token
在运行外部service时,首先需要创建API token。
在0.6.0版本中,生成API token
openssl rand -hex 32
在0.8.0版本中,出现生成API token的用户界面。
API token通常与特定用户关联,配置jupyterhub_config.py
c.JupyterHub.services = [
{'name': 'adding-users', 'api_token': 'super-secret-token'},
]
重启JupyterHub,在启动过程中会看到日志
Adding API token for <username>
配置cull-idle
配置jupyterhub_config.py
c.JupyterHub.services = [
{
'name': 'cull-idle',
'admin': True,
'command': 'python3 cull_idle_servers.py --timeout=3600'.split(),
}
]
生成API token,并保存到JUPYTERHUB_API_TOKEN
export JUPYTERHUB_API_TOKEN='token'
python3 cull_idle_servers.py [--timeout=900] [--url=http://127.0.0.1:8081/hub/api]
【参考】
1。 jupyterhub:external service:http://jupyterhub.readthedocs.io/en/latest/getting-started/services-basics.html