| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- # Systemd 服务文件 - 地磅销售系统后端
- # 文件路径: /etc/systemd/system/dibang-backend.service
- #
- # 使用方法:
- # 1. 复制此文件到服务器: sudo cp dibang-backend.service /etc/systemd/system/
- # 2. 根据实际情况修改路径和用户
- # 3. 重新加载 systemd: sudo systemctl daemon-reload
- # 4. 启用服务: sudo systemctl enable dibang-backend
- # 5. 启动服务: sudo systemctl start dibang-backend
- # 6. 查看状态: sudo systemctl status dibang-backend
- [Unit]
- Description=Dibang Backend API Service
- Documentation=https://github.com/your-org/simple-dibang-xiaoshou
- After=network.target mysql.service
- Wants=network-online.target
- [Service]
- Type=simple
- # 运行用户(根据实际情况修改)
- User=www-data
- Group=www-data
- # 工作目录
- WorkingDirectory=/iflytek/dibang/api/backend
- # 环境变量
- Environment="PATH=/root/.cargo/bin:/usr/local/bin:/usr/bin:/bin"
- Environment="PYTHONUNBUFFERED=1"
- Environment="ENV=prod"
- # 启动命令
- # 使用 uv 运行(推荐方式)
- # 注意: 需要确保 uv 在 PATH 中,通常安装在 ~/.cargo/bin/uv
- # 如果 uv 不在默认路径,请修改为完整路径,例如: /root/.cargo/bin/uv
- ExecStart=/root/.cargo/bin/uv run python app/main.py
- # 备用方式1: 使用虚拟环境中的 Python(如果使用传统方式)
- # ExecStart=/iflytek/dibang/api/backend/.venv/bin/python app/main.py
- # 备用方式2: 使用启动脚本
- # ExecStart=/iflytek/dibang/api/backend/start.sh start
- # 方式3: 使用 Gunicorn(生产环境推荐,需要先安装 gunicorn)
- # ExecStart=/iflytek/dibang/api/.venv/bin/gunicorn app.main:app \
- # --workers 4 \
- # --worker-class uvicorn.workers.UvicornWorker \
- # --bind 0.0.0.0:8000 \
- # --access-logfile - \
- # --error-logfile - \
- # --log-level info \
- # --timeout 120 \
- # --keep-alive 5
- # 重启策略
- Restart=always
- RestartSec=10
- StartLimitInterval=300
- StartLimitBurst=5
- # 日志
- StandardOutput=journal
- StandardError=journal
- SyslogIdentifier=dibang-backend
- # 安全设置
- NoNewPrivileges=true
- PrivateTmp=true
- ProtectSystem=strict
- ProtectHome=true
- ReadWritePaths=/iflytek/dibang/api
- ReadOnlyPaths=/etc
- # 资源限制(可选)
- # LimitNOFILE=65535
- # LimitNPROC=4096
- [Install]
- WantedBy=multi-user.target
|