SSH远程连接服务器,linux后台执行耗时程序
- 背景介绍
深度学习训练深度神经网络的时候,往往需要使用到GPU,GPU往往配置在远程服务器上,服务器可以开多个进程为多个虚拟用户通过ssh或者其他的一些方式进行连接,以便各个用户相互独立的使用GPU资源,不受影响。
但是,往往一个用户在通过ssh连接服务器的时候,如果需要训练深度模型,往往需要几个小时,几天甚至几周的时间,这个时候,而有的时候各个用户与服务器的连接不可能一直建立,所以这个时候,后台执行linux程序显得格外的重要。
假设现在需要训练一个深度网络模型,res_train.py,可以通过在linux的shell中输入python res_train.py执行代码,其中的res_train_py是一个简单的resnet网络模型在cifar-10上训练的python代码,执行完python res_train.py在2080Ti的显卡上需要大概2个小时的时间。如果是用户通过ssh执行python restrain.py训练模型,如果与服务器的连接保持不断的话,两个小时候之后,模型就会训练完毕,但是如果期间网络中断或者是用户需要进行其他操作的时候,那么就需要linux后台执行程序。 - 实现步骤
-
在后台执行 nohup python res_train.py &
-
执行之后会返回一个进程号,以及告诉你程序的标准输出都会保存在一个叫outhup.out的文件中在程序根目录下,如下图