Jupyter notebook 如何在后台运行jupyter笔记本?不需要为它保留一个终端
我们经常运行Jupyter notebook 如何在后台运行jupyter笔记本?不需要为它保留一个终端,jupyter-notebook,Jupyter Notebook,我们经常运行jupyter notebook在浏览器中弹出一个页面来使用笔记本。但是,打开服务器的终端仍然存在。有没有一种方法可以在服务器在后台运行的情况下关闭该终端?您可以使用jupyter笔记本&将进程放到后台。您可以在之后关闭终端,进程仍将运行。您可以在屏幕或tmux会话中启动笔记本电脑。使检查错误消息等变得容易。Tmux是在后台运行Jupyter笔记本的一个很好的选择。 我正在谷歌云平台的VM实例上运行我的Jupyter笔记本,操作系统为Ubuntu 16.0。在哪里 我必须启动SSH终
jupyter notebook
在浏览器中弹出一个页面来使用笔记本。但是,打开服务器的终端仍然存在。有没有一种方法可以在服务器在后台运行的情况下关闭该终端?您可以使用jupyter笔记本&
将进程放到后台。您可以在之后关闭终端,进程仍将运行。您可以在屏幕
或tmux
会话中启动笔记本电脑。使检查错误消息等变得容易。Tmux是在后台运行Jupyter笔记本的一个很好的选择。
我正在谷歌云平台的VM实例上运行我的Jupyter笔记本,操作系统为Ubuntu 16.0。在哪里
jupyter notebook--no browser--port=5000
。它将在该VM实例的端口号5000上启动Jupyter笔记本tmux
是一个很好的选择
终端多路复用器(tmux
),用于在SSH终端关闭后保持SSH会话在后台运行:
tmux
。它将在同一终端中打开一个窗口tmux-attach
命令tmux detach
命令:它将退出tmux会话窗口/终端,而不终止/停止tmux会话)有关更多详细信息,请参阅本文:在*nix下,运行程序避免因关闭终端而终止的最佳方法是使用nohup(无挂断) 要在运行服务器后启动浏览器,请使用以下命令:
nohup jupyter notebook &
要在不打开浏览器的情况下启动服务器,请使用以下命令:
nohup jupyter notebook --no-browser &
请注意,您可以使用jupyter
页面右上角的Quit关闭jupyter
服务器
nohup
put作为进程init(0)的父进程,因此当终端关闭时,它不会收到“挂断”信号。所有输出(标准输出和标准错误)都被重定向到文件nohup.out
nohup
以程序和shell命令的形式存在,因此如果您有bash
,请查看bash
的man
页面以了解更多详细信息。在后台运行jupyter笔记本服务器时,这对我很有用
$>nohup jupyter笔记本--允许root>error.log&
停止使用nohup jupyter笔记本很简单
首先,找到jupyter的pid:
$>ps-ef | grep jupyter
e、 g输出如下:
root 1141728972 16:00pts/0 00:04:29/path/to/jupyter笔记本
然后终止进程:
$>kill-9111417
您还可以通过使用以下内容存储pid来简化此过程:
$>nohup jupyter笔记本--允许root>error.log&echo$!>pid.txt
i、 e,您可以通过以下方式停止笔记本:
$>kill-9$(cat pid.txt)
停止jupyter笔记本的另一种方法是从笔记本页面退出。您可以使用
屏幕运行它
screen -A -m -d -S anyscreenname jupyter notebook --no-browser
这将在屏幕中启动jupyter,您可以使用屏幕命令访问屏幕 实际上,jupyter笔记本&
单靠它是不够的,后端仍然会登录到你的屏幕上
你需要的是,从这里引用
对于远程机器jupyter笔记本&
工作正常。
但是,当您关闭终端时,它在本地计算机上不起作用。
对于本地计算机,请使用tmux
不是很复杂,但它完成了任务:
#! /bin/bash
#probably should change this to a case switch
if [ "$1" == "end" ]
then
echo
echo "Shutting Down jupyter-notebook"
killall jupyter-notebook
echo
exit 0
fi
if [ "$1" == "-h" ]
then
echo
echo "To start : jnote <port> [default 8888]"
echo "To end : jnote end"
echo "This help : jnote -h"
echo
exit 0
fi
#cast from string
PORT=$(($1))
RETURN=0
PID=0
if [ "$PORT" == "0" ] || [ "$PORT" == "" ]; then PORT=8888; fi
echo
echo "Starting jupyter-notebook"
#background and headless, set port, allow colab access, capture log, don't open browser yet
nohup jupyter notebook \
--NotebookApp.allow_origin='https://colab.research.google.com' \
--port=$PORT --NotebookApp.port_retries=0 \
--no-browser >~/jnote.log 2>&1 &
RETURN=$?
PID=$!
#Wait for bg process to complete - add as needed
sleep 2
if [ $RETURN == 0 ]
then
echo
echo "Jupyter started on port $PORT and pid $PID"
echo "Goto `cat ~/jnote.log | grep localhost: | grep -v NotebookApp`"
echo
exit 0
else
echo
echo "Jupyter failed to start on port $PORT and pid $PID with return code $RETURN"
echo "see ~/jnote.log"
echo
exit $RETURN
fi
#/bin/bash
#可能应该将此更改为案例开关
如果[“$1”==“结束”]
然后
回声
echo“关闭jupyter笔记本”
killall jupyter笔记本
回声
出口0
fi
如果[“$1”=”-h”]
然后
回音
echo“要启动:jnote[默认值8888]”
回显“结束:jnote结束”
echo“此帮助:jnote-h”
回声
出口0
fi
#用线浇铸
端口=$($1))
返回=0
PID=0
如果[“$PORT”==“0”]| |[“$PORT”==“0”];然后端口=8888;fi
回声
echo“启动jupyter笔记本”
#后台和无头,设置端口,允许colab访问,捕获日志,不打开浏览器
nohup jupyter笔记本\
--NotebookApp.allow_origin='1!'https://colab.research.google.com' \
--port=$port--NotebookApp.port\u重试次数=0\
--没有浏览器>~/jnote.log 2>&1&
返回=$?
PID=$!
#等待bg进程完成-根据需要添加
睡眠2
如果[$RETURN==0]
然后
回声
echo“Jupyter在端口$port和pid$pid上启动”
echo“Goto`cat~/jnote.log | grep localhost:| grep-v NotebookApp”
回声
出口0
其他的
回音
echo“Jupyter无法在端口$port和pid$pid上启动,返回代码为$return”
echo“请参阅~/jnote.log”
回声
退出$RETURN
fi
使用jupyter笔记本&
然后键入disown
或<
#! /bin/bash
#probably should change this to a case switch
if [ "$1" == "end" ]
then
echo
echo "Shutting Down jupyter-notebook"
killall jupyter-notebook
echo
exit 0
fi
if [ "$1" == "-h" ]
then
echo
echo "To start : jnote <port> [default 8888]"
echo "To end : jnote end"
echo "This help : jnote -h"
echo
exit 0
fi
#cast from string
PORT=$(($1))
RETURN=0
PID=0
if [ "$PORT" == "0" ] || [ "$PORT" == "" ]; then PORT=8888; fi
echo
echo "Starting jupyter-notebook"
#background and headless, set port, allow colab access, capture log, don't open browser yet
nohup jupyter notebook \
--NotebookApp.allow_origin='https://colab.research.google.com' \
--port=$PORT --NotebookApp.port_retries=0 \
--no-browser >~/jnote.log 2>&1 &
RETURN=$?
PID=$!
#Wait for bg process to complete - add as needed
sleep 2
if [ $RETURN == 0 ]
then
echo
echo "Jupyter started on port $PORT and pid $PID"
echo "Goto `cat ~/jnote.log | grep localhost: | grep -v NotebookApp`"
echo
exit 0
else
echo
echo "Jupyter failed to start on port $PORT and pid $PID with return code $RETURN"
echo "see ~/jnote.log"
echo
exit $RETURN
fi
jupyter notebook & >> disown
jupyter notebook </dev/null &>/dev/null &
alias jnote='jupyter notebook </dev/null &>/dev/null &'