由于训练的模型耗时太久,一天完不成,所以想到可以托管训练程序,并且能实时查看进度
托管
nohup python train.py > output.log 2>&1 &
这条命令会将train.py脚本在后台运行,并将输出重定向到output.log文件中。2>&1表示将标准错误也重定向到同一个文件中。&表示将程序放到后台执行。
查看
tail -f output.log
优点和注意点
- 不需要手动新建output.log文件。在使用nohup命令时,通过重定向操作符>,系统会自动创建指定的文件(如果它尚不存在的话),并将程序的输出写入该文件。
- output.log 文件会捕获由 nohup 命令启动的程序的标准输出(stdout)和标准错误(stderr)流中的所有信息。这包括但不限于:
(1)标准输出(stdout):这通常是程序正常运行时产生的输出,比如使用 print() 函数打印的语句。
(2)标准错误(stderr):这包括程序中的错误信息、警告以及可能通过 print() 函数或类似手段输出的非标准信息。
(3)命令行输出:例如,如果程序中包含对系统命令的调用,这些命令的输出也会被重定向到 output.log。 - 在Python中,print函数默认情况下是行缓冲的,这意味着它不会立即将内容输出到流中,而是等到行结束或者缓冲区满了才会刷新输出。这在大多数情况下不是问题,但如果你希望立即看到输出,可以设置flush=True
print('这是一个测试行', flush=True)
如果有帮助到你,能点个赞嘛!!谢谢!!!