#!/bin/bash PORT=3000 STORAGE_DIR="" ADMIN_PASSWORD="" show_help() { echo "Usage: $0 [options]" echo "" echo "Options:" echo " -p, --port PORT 服务端口 (默认: 3000)" echo " -s, --storage DIR 存储目录 (默认: ./storage)" echo " -w, --password PASS 管理员密码" echo " -h, --help 显示帮助" } while [[ $# -gt 0 ]]; do case $1 in -p|--port) PORT="$2" shift 2 ;; -s|--storage) STORAGE_DIR="$2" shift 2 ;; -w|--password) ADMIN_PASSWORD="$2" shift 2 ;; -h|--help) show_help exit 0 ;; *) echo "未知参数: $1" show_help exit 1 ;; esac done # 构建命令 CMD="npm start" ENV_VARS="PORT=$PORT" if [ -n "$STORAGE_DIR" ]; then ENV_VARS="$ENV_VARS STORAGE_DIR=$STORAGE_DIR" fi if [ -n "$ADMIN_PASSWORD" ]; then ENV_VARS="$ENV_VARS ADMIN_PASSWORD=$ADMIN_PASSWORD" fi echo "启动服务..." echo " 端口: $PORT" if [ -n "$STORAGE_DIR" ]; then echo " 存储: $STORAGE_DIR" fi echo " 命令: $ENV_VARS $CMD" nohup sh -c "$ENV_VARS $CMD" > nohup.out 2>&1 & echo "服务已启动 (PID: $!)" echo "查看日志: tail -f nohup.out"