[ERROR] dataops-platform 重启失败!
tail: cannot open '/opt/dataops-platform/logs/gunicorn_error.log' for reading: No such file or directory
时区模块问题(最常见)
zoneinfo 模块需要系统时区数据tzdata 包会导致应用无法启动from zoneinfo import ZoneInfo日志目录不存在
/opt/dataops-platform/logs 目录未创建虚拟环境问题
配置文件问题
cd /opt/dataops-platform/scripts
sudo chmod +x fix_startup.sh
sudo ./fix_startup.sh
这个脚本会自动:
如果自动修复失败,先运行诊断脚本查看详细问题:
cd /opt/dataops-platform/scripts
sudo chmod +x diagnose_issue.sh
sudo ./diagnose_issue.sh
诊断脚本会检查:
sudo apt-get update
sudo apt-get install -y tzdata
sudo mkdir -p /opt/dataops-platform/logs
sudo chown ubuntu:ubuntu /opt/dataops-platform/logs
cd /opt/dataops-platform
source venv/bin/activate
python -c "
try:
from zoneinfo import ZoneInfo
except ImportError:
from backports.zoneinfo import ZoneInfo
print('时区模块正常')
"
如果报错,安装 backports(Python 3.8 需要):
pip install backports.zoneinfo
cd /opt/dataops-platform
source venv/bin/activate
python -c "from app import create_app; app = create_app(); print('应用导入成功')"
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl restart dataops-platform
# 查看 stderr(错误输出)
sudo tail -f /var/log/supervisor/dataops-platform-stderr.log
# 查看 stdout(标准输出)
sudo tail -f /var/log/supervisor/dataops-platform-stdout.log
# Gunicorn 错误日志
tail -f /opt/dataops-platform/logs/gunicorn_error.log
# Gunicorn 访问日志
tail -f /opt/dataops-platform/logs/gunicorn_access.log
sudo tail -f /var/log/supervisor/supervisord.log
原因: Python < 3.9 需要使用 backports.zoneinfo
解决方案:
# 检查 Python 版本
python --version
# Python 3.8 需要安装 backports.zoneinfo
cd /opt/dataops-platform
source venv/bin/activate
pip install backports.zoneinfo
# 同时安装系统时区数据
sudo apt-get update
sudo apt-get install -y tzdata
原因: 系统缺少时区数据库
解决方案:
sudo apt-get update
sudo apt-get install -y tzdata
原因: 文件权限问题
解决方案:
sudo chown -R ubuntu:ubuntu /opt/dataops-platform
sudo chmod -R 755 /opt/dataops-platform/scripts
原因: 端口 5500 被占用
解决方案:
# 查找占用端口的进程
sudo netstat -tlnp | grep :5500
# 或使用 lsof
sudo lsof -i :5500
# 停止旧进程
sudo supervisorctl stop dataops-platform
sudo pkill -f "gunicorn.*dataops"
如果 Supervisor 启动失败,可以手动启动应用进行测试:
cd /opt/dataops-platform
source venv/bin/activate
gunicorn -c gunicorn_config.py 'app:create_app()'
这样可以直接看到启动时的错误信息。
启动成功后,进行以下验证:
sudo supervisorctl status dataops-platform
应该显示 RUNNING
sudo netstat -tlnp | grep :5500
应该看到 gunicorn 进程监听 5500 端口
curl http://localhost:5500/api/system/health
应该返回 200 状态码
cd /opt/dataops-platform
source venv/bin/activate
python -c "from app.core.common.timezone_utils import now_china_naive; print(now_china_naive())"
应该输出当前东八区时间
如果以上方法都无法解决问题,请提供以下信息:
sudo ./diagnose_issue.sh > diagnosis.log 2>&1sudo tail -100 /var/log/supervisor/dataops-platform-stderr.logpython --versioncat /etc/os-releasedeploy_dataops.shstart_dataops.shrestart_dataops.shdiagnose_issue.shfix_startup.sh/etc/supervisor/conf.d/dataops-platform.conf/opt/dataops-platform/gunicorn_config.py