用户通过 SSH 登录或以 SSH 为基础的工具软件(比如 XShell、PyCharm,VSCode 等)进行远程执行程序时,为避免因 SSH 连接中断导致程序终止,遭受不必要的损失,智算平台建议开守护进程来执行程序。

用户可通过以下方式开启进程守护。

Jupyterlab

用户可直接使用 jupyter 终端访问容器实例后台,执行相应进程即可。在 JupyterLab 的工作区域,点击 Other > Terminal 即可新打开一个终端。JupyterLab 在关闭终端后,默认不会终止运行。

develop training jupyter 3
  • 若打开终端时,无内容显示,点击回车键即可。

  • 使用 JupyterLab 长时间跑代码时,强烈建议对日志进行重定向,防止断网后中间的日志无法找回,具体操作如下。

    日志重定向到 train.log 文件,需在命令后加上:> train.log 2>&1,如下:

    python xxx.py > train.log 2>&1

    实时查看日志

    tail -f train.log

screen

安装 screen

  1. 访问容器实例后台

  2. 执行如下命令,安装 screen。

    apt-get update && apt-get install -y screen

创建会话

  1. 在后台终端执行如下命令,创建一个会话。

    screen

    回显示例:

    faq daemon 1
  2. 再次回车,在新的终端页面中,执行相应程序即可。相应的程序将会被上一步创建的会话保护。

  3. 若使用 screen 打开终端后出现中文乱码,可执行如下命令,重新进入。

    echo "defencoding GBK" >>  ~/.screenrc
    echo "encoding UTF-8 GBK" >>  ~/.screenrc

离开会话

直接使用快捷键 ctrl+a+d,系统会自动退出原终端,并提示 detached,表示离开当前会话。

faq daemon 2

重新进入会话

  1. 执行如下命令,找到离开的所有会话。

    screen -ls
    faq daemon 3
  2. 执行如下命令,恢复至指定会话。

    screen -r <Screen_ID>

    命令示例:

    screen -r 1655.pts-0.nb-e8qmrhmigmio-0

退出会话

直接使用快捷键 ctrl+d 即可。若有正在执行的程序,可先使用快捷键 ctrl+c 终止程序。