Linux关闭终端(关闭SSH等)运行的程序被迫停止
大家在使用服务器进行炼丹时,无论是windows系统还是linux系统,都需要开启终端链接到服务器,使用ssh命令进入计算节点,从而愉快的调用n块GPU。
面临的问题
在服务器上运行一个python的程序, 当我意外的关闭这个SSH之后,该服务不可用。那么正在运行的程序会被迫中断,炼丹被迫中断。再次登入到服务器,已经没有这个python进程。
解决方法
使用nohup命令。nohup英文单词的汉语意思就是不挂起,后台运行!
该命令可以在关闭终端之后继续运行相应的进程。
下面给出具体例子,炼丹中最常见的命令就是
python main.py
这种命令的使用缺点就是,当我们意外关闭终端后,当前运行的python程序就会被迫中断!
所以我们改成
nohup python main.py
输入这条命令后,出现
nohup: ignoring input and appending output to ‘nohup.out’
后台已经在运行我们的main.py程序了,我们关闭终端,检验一下程序否仍在运行。
我打开自己设置的run.txt文件(自己程序中指定输出的log文件),发现训练记录已经被保存,说明程序正常运行!
再检查一下GPU的功率
这里我使用了两块GPU(1号和2号),忽略run.txt文件中所说的使用四块GPU,手懒未改而已。
GPU被调用,再次说明程序仍在运行!
参考
https://blog.csdn.net/gatieme/article/details/52777721