在 CentOS(以及大多数 Linux 系统)中,nohup 日志被覆盖通常不是 nohup 本身的问题,而是重定向方式或执行方式导致的。下面按最常见原因逐一说明。
> 覆盖重定向你很可能用了类似下面的命令:
nohup python app.py > log.txt &
或
nohup ./start.sh > output.log 2>&1 &
> 是覆盖写入所以:
✅ 结果:看起来像“日志被覆盖”
>> 追加日志nohup python app.py >> log.txt 2>&1 &
或
nohup ./start.sh >> output.log 2>&1 &
>>:追加写入2>&1:标准错误也写入日志&:后台运行✅ 日志不会丢失
nohup 默认日志行为(容易误解)如果你没有指定重定向:
nohup python app.py &
CentOS 默认会:
nohup.out⚠️ 但很多人手动指定了 > log.txt,反而导致覆盖。
例如:
nohup app >> log.txt &
nohup app >> log.txt &
✅ 建议:
nohup app >> log_$(date +%F_%T).txt &
以下情况也可能“看起来像覆盖”:
CentOS 默认可能配置:
/var/log/nohup.out
> log.txt
或
rm log.txt
nohup ./app.sh >> /var/log/app/app.log 2>&1 &
配合:
logrotatesupervisor / systemdCentOS 中 nohup 日志“被覆盖”,99% 是因为用了
>而不是>>
如果你愿意,可以把你用的具体命令贴出来,我可以直接帮你改正确。