当你执行命令时,Bash 会按以下顺序处理:
-
打开文件 : 先打开(或创建)
log.log。 -
重定向 1: 将标准输出指向文件。
-
重定向 2: 将标准错误也指向该文件。
-
分身 (Fork): 创建一个子进程在后台运行程序。
-
写入 : 程序产生的所有信息通过描述符 1 和 2 最终都流向了
log.log。
进阶技巧:nohup
如果你希望在关闭终端(断开 SSH)后程序依然运行,通常建议配合 nohup 使用:
nohup python scripts/train.py ... > log.log 2>&1 &
如果不加 nohup,当你退出登录时,系统可能会向该后台进程发送 SIGHUP 信号导致训练中断。