nohup 日志“丢失”通常不是真的被删除了,而是日志没有按你预期的地方写入,或者被缓冲、被覆盖、被重定向错了。常见原因有这几类:
nohup python app.py &
默认会生成 nohup.out,但:
✅ 建议显式指定:
nohup python app.py > /var/log/app.log 2>&1 &
很多程序(Python logging、Java logback、Node winston):
如果你只看 nohup.out,自然“没有日志”
✅ 检查程序配置,确认日志路径
典型情况:
-u进程没退出时,日志在内存里
✅ Python 加:
nohup python -u app.py > app.log 2>&1 &
用了 > 而不是 >>:
nohup app > log 2>&1 &
nohup app > log 2>&1 & # 第二次直接清空
✅ 需要追加:
>> log 2>&1
例如:
nohup 只负责“忽略 HUP”,不保证程序能起来
✅ 看:
ps aux | grep app
cat nohup.out
Docker / k8s 中:
✅ 应该:
docker logs系统可能:
/tmp# 1. 进程在不在
ps aux | grep 程序名
# 2. 实际日志文件
ls -l nohup.out
ls -l /path/to/your.log
# 3. 文件大小是否增长
watch -n 1 'ls -l app.log'
如果你愿意,可以贴一下:
我可以直接帮你定位是哪一类问题。