start.sh 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/bin/bash
  2. # 门店检测工作台 —— 服务器 / Linux 启动脚本(非交互,适合 systemd、nohup、docker)
  3. #
  4. # 用法:
  5. # ./start.sh # 默认端口 8787,开放局域网
  6. # ./start.sh 9000 # 指定端口
  7. # ./start.sh --local # 只允许本机访问(放在 nginx 后面时用)
  8. # PORT=9000 ./start.sh # 也可以用环境变量
  9. #
  10. # 建议放在 systemd 里跑,见 deploy/门店检测工作台.service
  11. set -e
  12. cd "$(dirname "$0")"
  13. PORT="${PORT:-8787}"
  14. HOST_ARG=()
  15. for a in "$@"; do
  16. case "$a" in
  17. --local) HOST_ARG+=("$a") ;;
  18. --*) ;;
  19. *) PORT="$a" ;;
  20. esac
  21. done
  22. # 找 Python 3.7+
  23. PY=""
  24. for c in python3 python; do
  25. if command -v "$c" >/dev/null 2>&1 && \
  26. "$c" -c 'import sys; sys.exit(0 if sys.version_info >= (3,7) else 1)' 2>/dev/null; then
  27. PY="$c"; break
  28. fi
  29. done
  30. if [ -z "$PY" ]; then
  31. echo "✗ 没找到 Python 3.7+,请先安装:" >&2
  32. echo " Ubuntu/Debian: sudo apt update && sudo apt install -y python3" >&2
  33. echo " CentOS/RHEL: sudo yum install -y python3" >&2
  34. exit 1
  35. fi
  36. echo "Python: $($PY --version 2>&1) ($(command -v $PY))"
  37. echo "端口: $PORT"
  38. exec "$PY" -u backend/server.py --port "$PORT" "${HOST_ARG[@]}"