100 lines
3.0 KiB
Bash
100 lines
3.0 KiB
Bash
#!/bin/bash
|
||
#
|
||
# Copyright 2025 coze-dev Authors
|
||
#
|
||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||
# you may not use this file except in compliance with the License.
|
||
# You may obtain a copy of the License at
|
||
#
|
||
# http://www.apache.org/licenses/LICENSE-2.0
|
||
#
|
||
# Unless required by applicable law or agreed to in writing, software
|
||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
# See the License for the specific language governing permissions and
|
||
# limitations under the License.
|
||
#
|
||
|
||
|
||
# Coze Studio 关闭脚本
|
||
# 该脚本将优雅地停止所有正在运行的服务
|
||
|
||
set -e
|
||
|
||
echo "🛑 正在关闭 Coze Studio..."
|
||
|
||
# 获取脚本所在目录
|
||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
cd "$SCRIPT_DIR"
|
||
|
||
# 停止前端开发服务器
|
||
echo "🔍 查找并停止前端开发服务器..."
|
||
FRONTEND_PIDS=$(pgrep -f "rushx dev" || echo "")
|
||
if [ -n "$FRONTEND_PIDS" ]; then
|
||
echo "🎯 发现前端进程: $FRONTEND_PIDS"
|
||
echo "$FRONTEND_PIDS" | xargs kill -TERM 2>/dev/null || true
|
||
sleep 2
|
||
# 强制终止未退出的进程
|
||
echo "$FRONTEND_PIDS" | xargs kill -KILL 2>/dev/null || true
|
||
echo "✅ 前端开发服务器已停止"
|
||
else
|
||
echo "ℹ️ 未发现运行中的前端开发服务器"
|
||
fi
|
||
|
||
# 停止 Node.js 相关进程
|
||
echo "🔍 查找并停止 Node.js 进程..."
|
||
NODE_PIDS=$(pgrep -f "node.*coze-studio" || echo "")
|
||
if [ -n "$NODE_PIDS" ]; then
|
||
echo "🎯 发现 Node.js 进程: $NODE_PIDS"
|
||
echo "$NODE_PIDS" | xargs kill -TERM 2>/dev/null || true
|
||
sleep 2
|
||
echo "$NODE_PIDS" | xargs kill -KILL 2>/dev/null || true
|
||
echo "✅ Node.js 进程已停止"
|
||
else
|
||
echo "ℹ️ 未发现运行中的 Node.js 进程"
|
||
fi
|
||
|
||
# 停止 Docker 容器
|
||
echo "🐳 停止 Docker 容器..."
|
||
cd docker
|
||
|
||
if docker compose version &> /dev/null; then
|
||
if docker compose ps -q | grep -q .; then
|
||
echo "🎯 正在停止 Docker 容器..."
|
||
docker compose down
|
||
echo "✅ Docker 容器已停止"
|
||
else
|
||
echo "ℹ️ 未发现运行中的 Docker 容器"
|
||
fi
|
||
else
|
||
if docker-compose ps -q | grep -q .; then
|
||
echo "🎯 正在停止 Docker 容器..."
|
||
docker-compose down
|
||
echo "✅ Docker 容器已停止"
|
||
else
|
||
echo "ℹ️ 未发现运行中的 Docker 容器"
|
||
fi
|
||
fi
|
||
|
||
cd ..
|
||
|
||
# 清理临时文件
|
||
echo "🧹 清理临时文件..."
|
||
find . -name "node_modules" -type d -prune -exec rm -rf {} + 2>/dev/null || true
|
||
find . -name ".next" -type d -prune -exec rm -rf {} + 2>/dev/null || true
|
||
find . -name "dist" -type d -prune -exec rm -rf {} + 2>/dev/null || true
|
||
find . -name ".turbo" -type d -prune -exec rm -rf {} + 2>/dev/null || true
|
||
|
||
echo "✅ 临时文件清理完成"
|
||
|
||
# 显示最终状态
|
||
echo ""
|
||
echo "📊 服务状态:"
|
||
echo "🌐 前端开发服务器: 已停止"
|
||
echo "🐳 Docker 容器: 已停止"
|
||
echo "🧹 临时文件: 已清理"
|
||
echo ""
|
||
echo "👋 Coze Studio 已完全关闭!"
|
||
echo ""
|
||
echo "💡 如果需要重新启动,请运行:"
|
||
echo " ./start.sh" |