通常我们在运行程序时,会通过终端登录服务器,然后使用shell命令运行程序。这种方式对于运行时长较短的程序没问题,但是对于深度学习中训练网络等耗时较长的程序来说很容易出问题。例如一旦机器死机、断网、不小心关闭终端等种种情况都会导致程序终止运行。又要悲剧地重新开始,简直是欲哭无泪……
那么我们希望关闭终端会话,程序依然继续运行的话,可以选择以下两种方式:
- nohup使shell命令脱离终端运行;“&”让命令在后台运行。
- 可以使用screen这个工具,实现让程序在后台运行。
1. nohup
nohup后台运行程序
nohup python -u main.py > out.log 2>&1 &
- nohup:不间断地运行,是no hang up的缩写。
- -u:python不启用缓冲,out.log中及时显示输出
- > out.log:输出内容写入nohup.out中
- &:后台运行
- 2>&1:将错误和标准都输出到my.log
0 表示stdin标准输入,用户键盘输入的内容
1 表示stdout标准输出,输出到显示屏的内容
2 表示stderr标准错误,报错内容

本文介绍在服务器上运行深度学习程序时,如何利用nohup和screen工具确保程序即使在断开连接后也能继续运行。包括使用nohup命令进行后台运行、查看和终止程序,以及使用screen创建和管理会话。
最低0.47元/天 解锁文章
1091

被折叠的 条评论
为什么被折叠?



