nohup 日志“丢失”通常不是真的被删了,而是没写到你以为的地方,或者进程根本没正常输出。常见原因有这些:
常见写法:
nohup python app.py &
很多人以为日志在 nohup.out,但:
nohup.out 就在那个目录nohup.out例如:
nohup python app.py > log.txt 2>&1 &
那日志在 log.txt,不在 nohup.out
✅ 查法:
ls -lat | head
pwd
lsof -p <pid> | grep txt
Python / Java / Node 经常缓冲输出:
✅ 解决:
python -u app.py
或:
stdbuf -oL nohup python app.py
kill -9这些情况:
✅ 查:
dmesg | grep -i kill
last reboot
如果你写了:
nohup xxx > log.txt
再次启动没加 >>,就会覆盖
✅ 用:
>> log.txt 2>&1
有些脚本或启动器会:
>/dev/null 2>&1
你以为在跑 nohup,其实被吞了
✅ 查:
ls -l /path/*.log*
有些程序:
✅ 查退出码:
echo $?
nohup python -u app.py >> app.log 2>&1 &
或更好:
setsid python -u app.py >> app.log 2>&1 < /dev/null &
如果你愿意,可以把:
发出来,我可以直接帮你定位是哪一条。