前言
用服务器做pytorch训练时,直接跑python命令如果连接不小心断了,训练也就断了。可以在bash中使用nohup配合&来解决该问题。
& 后台运行
输入终端命令后添加一个&尾缀,表示在后台运行:
python train.py &
1
按下Ctrl+C,程序依然运行
关闭终端,程序结束
nohup 不挂起
输入终端命令前添加nohup (no hang up),表示程序不挂起:
nohup python train.py
1
按下Ctrl+C,程序结束
关闭终端,程序依然运行
nohup &
上面两个合并使用:
nohup python train.py &
1
按下Ctrl+C或者关闭终端,程序都仍然运行,需要通过kill来终止进程。
nohup 指定输出文件
nohup+命令后,可以指定输出文件接收命令的输出:
nohup python train.py > out.log &
1
训练中的标准输出将放入out.log中
还可以把标准错误输出到日志中:
nohup python train.py > out.log 2>&1 &
1
2表示错误,1表示标准输出,2>&1表示把标准错误定向到标准输出上,一起输出。