使用 nohup 命令在后台运行程序时,大家应该都很熟悉。不过,默认情况下所有输出都会堆积到 nohup.out 文件中,有时我们希望自定义日志文件名,或者将错误日志单独分离出来,该如何操作?直接上干货——通过重定向就能轻松搞定。

以下两种常见场景,基本覆盖了日常需求:
- 将标准输出和错误输出合并到同一个自定义日志文件:
nohup your_command > my_log_file.out 2>&1 &这里的 my_log_file.out 就是你想指定的文件名,2>&1 将标准错误也重定向到同一份日志,& 让任务立即在后台运行。
- 将标准输出和错误输出分别记录到两个不同的文件:
nohup your_command > output.log 2> error.log &这样 output.log 只记录正常输出,error.log 专门收集错误信息,排查问题时一目了然。
实际使用中,请将 your_command 替换为你要执行的命令,例如 python train.py 或 java -jar app.jar。一个小技巧:如果担心日志文件过大,可以在命令后加上 nohup ... > log.txt 2>&1 & echo $! 显式记录进程号,方便后续管理。当然,这只是锦上添花,核心仍然是上面那两种重定向写法。
