在使用 nohup 运行程序时,通常会把输出重定向到日志文件(如 nohup.out 或自定义日志)。当日志出现异常时,可以按下面思路系统定位和排查。
ps -ef | grep your_program
或
jobs -l
确认日志文件路径:
nohup python app.py > app.log 2>&1 &
app.log 是标准输出和错误输出nohup.outls -l app.log
tail -f app.log
可能原因:
排查:
ps -p <pid>
flush 或缓冲问题(Python 加 -u)nohup python -u app.py > app.log 2>&1 &
直接搜索关键字:
grep -n -i "error\|exception\|traceback" app.log
常见情况:
OutOfMemory → 内存问题Connection refused → 依赖服务不可用Permission denied → 权限问题可能原因:
检查:
ls -l app.log*
解决:
logging 模块logrotatedu -h app.log
建议:
>> + logrotateprint 大量调试信息strace -p <pid>
可看到是否卡在:
read()futex()(锁)connect()top -p <pid>
或
cat /proc/<pid>/status
检查:
dmesg | grep <pid>(OOM)exit codeecho $?
nohup python -u app.py >> app.log 2>&1 &
或使用 setsid:
setsid python -u app.py >> app.log 2>&1 < /dev/null &
如果你能贴出:
我可以帮你更精确定位问题。