本地连接服务器训练一个机器学习或者深度学习模型的时候,需要花很长时间才能训练出一个结果,但是在这个过程中本地的ssh连接很容易就断开了,这时在服务器上跑的程序也就跟着断掉了,这个时候就非常非常需要后台运行训练程序。
先记录一下使用nohup解决这个问题的过程
- 因为服务器多人在使用,所以在进入正题之前还是需要先激活环境:source 环境名/bin/activate
- 打开程序所在文件夹:cd 某文件夹
接下来进入正题,使用nohup:
- 在上述步骤结束之后,继续输入:
nohup python -u 程序名.py > /日志路径 日志名.log 2>&1 &
验证程序是否已经在后台运行
- 成功之后,关闭当前终端
- 打开新的终端,ssh命令连接服务器
- 输入
ps -aux|grep 程序名.py
,就能看到正在运行的程序啦
训练完毕后杀死进程
- 在执行
ps -aux|grep 程序名.py
的时候,我们可以看到第二列是程序运行的ID,记下ID号码 - 命令行输入
kill -9 ID号
,就可以杀死进程啦
训练完成后想看程序中关于 print
的输出,只要打开自定义的目录文件下的 目录.log
就可以查看啦~