fix: add controlled service restart console

This commit is contained in:
linkong
2026-03-31 17:56:31 +08:00
parent e384318b50
commit e903723877
14 changed files with 1350 additions and 13 deletions

View File

@@ -168,6 +168,7 @@ parse_service_args() {
FRONTEND_PORT="$DEFAULT_FRONTEND_PORT"
BACKEND_PORT_REQUESTED=0
FRONTEND_PORT_REQUESTED=0
DATABASE_REQUESTED=0
while [ "$#" -gt 0 ]; do
case "$1" in
@@ -189,6 +190,10 @@ parse_service_args() {
shift 1
fi
;;
-d|--database)
DATABASE_REQUESTED=1
shift 1
;;
*)
echo -e "${RED}❌ 未知参数: $1${NC}"
exit 1
@@ -219,6 +224,12 @@ stop_frontend_service() {
pkill -f "bun run dev" 2>/dev/null || true
}
restart_database_service() {
echo -e "${BLUE}🗄️ 重启数据库...${NC}"
docker restart planet_postgres planet_redis 2>/dev/null || docker-compose up -d postgres redis
sleep 3
}
start_backend_service() {
local backend_port="$1"
local backend_port_requested="$2"
@@ -389,7 +400,7 @@ restart() {
parse_service_args "$@"
cleanup_exit_containers
if [ "$BACKEND_PORT_REQUESTED" -eq 0 ] && [ "$FRONTEND_PORT_REQUESTED" -eq 0 ]; then
if [ "$BACKEND_PORT_REQUESTED" -eq 0 ] && [ "$FRONTEND_PORT_REQUESTED" -eq 0 ] && [ "$DATABASE_REQUESTED" -eq 0 ]; then
stop
sleep 1
start
@@ -398,6 +409,10 @@ restart() {
echo -e "${YELLOW}🔄 按需重启服务...${NC}"
if [ "$DATABASE_REQUESTED" -eq 1 ]; then
restart_database_service
fi
if [ "$BACKEND_PORT_REQUESTED" -eq 1 ]; then
stop_backend_service
sleep 1
@@ -412,6 +427,9 @@ restart() {
echo ""
echo -e "${GREEN}✅ 重启完成!${NC}"
if [ "$DATABASE_REQUESTED" -eq 1 ]; then
echo " 数据库: planet_postgres, planet_redis"
fi
if [ "$BACKEND_PORT_REQUESTED" -eq 1 ]; then
echo " 后端: http://localhost:${BACKEND_PORT}"
fi
@@ -486,7 +504,7 @@ case "$1" in
echo "命令:"
echo " start 启动服务,可选: -b <后端端口> -f <前端端口>"
echo " stop 停止服务"
echo " restart 重启服务,可选: -b [后端端口] -f [前端端口]"
echo " restart 重启服务,可选: -b [后端端口] -f [前端端口] -d"
echo " createuser 交互创建用户"
echo " health 检查健康状态"
echo " log 查看日志"