前言
如果你是windows可能不会用到这个
对与windows而言会安装一个ssh远程连接的软件, 比如Mobaxterm
这个软件十分好用,我估计还在上学的同学不会陌生
一般来说输入ip 用户名 端口等信息就可以链接远程,之后会让你输入你对应的user的密码,就可以远程操控了。
对与我们做算法的来说,一般都要托管自己的模型训练代码,要不长时间不碰,terminal会自动断开远程连接
windows下
对于windows远程来说,可以采用直接用nohup命令来进行远程
例如
nohup python main.py
之后关掉Mobaxterm的这个窗口,程序依然托管执行
linux或者mac下
这种情况下如果没有这种windows上的工具,用命令行进行ssh远程连接
怎么进行托管呢?
我们可以采用screen来进行托管。
简单使用
首先要安装
yum install screen
这里说下我的通俗理解,screen就相当于进行一个新窗口的建立,并且这个新窗口可以直接detach到你目前的窗口,而继续running的。
所以接下来创建一个新的窗口
screen -s che
目前进入到一个叫che的screen:0内
开始我们的操作,比如跑了一个代码程序
之后按ctrl+a+d进行detach这个窗口
之后回到原主窗口
之后过段时间我们可以再使用命令恢复刚才创建的che screen窗口
screen -list
对应的screen下又个id 在点的最前面(比如14257)
之后执行
screen -r 14257
之后成功恢复,实现了后台运行
还有其他的常用功能直接快捷键搞定
ctrl+a+c -> 创建一个新的运行shell的窗口并切换到该窗口
ctrl+a+n -> Next,切换到下一个 window
ctrl+a+p -> Previous,切换到前一个 window
如果使用anaconda会出现虚拟环境冲突
好比我在现在环境是ok的,换成screen之后就出现没有包等问题
在非screen的时候退出虚拟环境,再进入screen的虚拟环境,就不会出现冲突的问题
# 退出虚拟环境
source deactivate
# 创建自己的screen窗口
screen -R your_screen
# 在这个screen下进入虚拟环境
source activate myenv
如果screen -list存在Attached状态的screen
正常来说应该是detach
利用以下命令进入
screen -D -r <your session-id>
相当于先detach再转入到这个session中
参考:
https://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html
https://blog.csdn.net/qinglv1/article/details/88582295
https://blog.csdn.net/gdali/article/details/72799581