分享编程工具实用方法,面对无穷无尽的配置bug,其他文章:
- Windows连接远程Linux服务器 | VSCode配置 | 免密设置 | 跳板机配置
- 使用远程服务器总是因网络中断、终端不小心关闭、锁屏等导致程序中断 | screen窗口
- GeForce RTX 3090无法使用mmsegmentation官方推荐cuda版本
- ubuntu无法安装软件包ssh等并提示进程被调用问题
其实nohup命令可以解决两个常见问题,其一,是程序中断的问题。其全称为no hang up,为不挂断的意思。但是我一般用screen命令代替这个功能,而不用nohup,详见 这篇文章(screen) 。其二,将程序转到后台执行,并将原终端输出语句转移到日志文件中。我一般用其第二个功能,有时候感觉终端输出内容太多好乱,不想在终端看,并且想保留其输出日志。
例如,nohup python train.py,或 nohup sh train.sh,则该程序会在后台执行,并自动在当前路径下生成日志文件nohup.out
注意,虽然平时 ./train.sh 可以直接执行sh脚本,但是用 nohup 时候要用 sh ./train.sh 执行,否则执行不了(我记得是)
如果想指定日志文件的名字,nohup python train.py > output.log,我记得.txt/.out/.log格式都可以
如果想在日志文件中看错误信息,nohup python train.py > output.log 2>&1 (将标准错误信息变成标准输出,这样在日志文件中也可以看)