diff --git a/start.sh b/start.sh new file mode 100755 index 0000000..c0fb3a9 --- /dev/null +++ b/start.sh @@ -0,0 +1,65 @@ +#!/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" \ No newline at end of file