在 Linux 中使用 nohup 时,日志文件(通常是 nohup.out 或你重定向的文件)为空,常见原因有以下几种:
这是最常见原因。
解决办法:
python -u script.py
或加:import sys
sys.stdout.reconfigure(line_buffering=True)
fflush(stdout);你以为写到了 nohup.out,其实没有。
检查你是怎么启动的:
nohup command > out.log 2>&1 &
还是:
nohup command &
后者才会用 nohup.out
✅ 建议显式重定向:
nohup your_command > app.log 2>&1 &
排查:
ps -ef | grep your_command
或看:
cat nohup.out
如果是空的,且进程不在,说明启动就失败了。
nohup.out 默认只捕获 stdout
错误信息在 stderr,可能没记录
✅ 正确写法:
nohup command > log.txt 2>&1 &
有些程序会:
此时 nohup.out 不会再有内容
检查:
df -h
ls -l nohup.out
如果:
可能看到“空文件”
nohup your_command > run.log 2>&1 &
tail -f run.log
如果你愿意,可以贴出:
ps / nohup.out 状态我可以帮你精准定位原因。