|
@@ -9,7 +9,7 @@ REMOTE_BASE_DIR="/home/software/fhzx" # 远程服务器上的部署目录,根
|
|
|
LOCAL_FS_ADMIN_JAR="./fs-admin/target/fs-admin.jar" # 假设target目录和你提供的 tree 命令显示的目录同级
|
|
|
LOCAL_FS_COMPANY_JAR="./fs-company/target/fs-company.jar"
|
|
|
LOCAL_FS_USER_APP_JAR="./fs-user-app/target/fs-user-app.jar"
|
|
|
-
|
|
|
+LOCAL_FS_API_JAR="./fs-user-app/target/fs-api.jar"
|
|
|
# 函数:检查本地文件是否存在
|
|
|
check_local_file() {
|
|
|
if [ ! -f "$1" ]; then
|
|
@@ -30,16 +30,33 @@ stop_remote_app() {
|
|
|
|
|
|
echo "Stopping $app_name in $remote_dir..."
|
|
|
|
|
|
- # 获取运行该JAR包的进程ID
|
|
|
- local pid=$(ssh "$REMOTE_USER@$REMOTE_HOST" "ps -ef | grep '$full_path' | grep -v grep | awk '{print \$2}'")
|
|
|
-
|
|
|
- if [ -n "$pid" ]; then
|
|
|
- echo "Found process ID: $pid for $app_name, stopping it..."
|
|
|
- ssh "$REMOTE_USER@$REMOTE_HOST" "kill -15 $pid && sleep 3 && kill -9 $pid 2>/dev/null || true"
|
|
|
- echo "Process stopped."
|
|
|
- else
|
|
|
- echo "No running process found for $app_name."
|
|
|
- fi
|
|
|
+ # 使用单引号确保命令在远程服务器上正确执行
|
|
|
+ ssh "$REMOTE_USER@$REMOTE_HOST" '
|
|
|
+ full_path="'"$REMOTE_BASE_DIR/$remote_dir/$app_name.jar"'"
|
|
|
+ pids=$(ps aux | grep "java -jar.*'"$full_path"'" | grep -v grep | awk "{print \$2}")
|
|
|
+
|
|
|
+ if [ -n "$pids" ]; then
|
|
|
+ echo "Found process IDs: $pids for '"$app_name"'"
|
|
|
+ for pid in $pids; do
|
|
|
+ echo "Stopping process $pid..."
|
|
|
+ kill -15 $pid
|
|
|
+ done
|
|
|
+
|
|
|
+ # 等待进程结束
|
|
|
+ sleep 3
|
|
|
+
|
|
|
+ # 检查进程是否仍在运行,如果是则强制终止
|
|
|
+ for pid in $pids; do
|
|
|
+ if ps -p $pid > /dev/null 2>&1; then
|
|
|
+ echo "Process $pid still running, force killing..."
|
|
|
+ kill -9 $pid
|
|
|
+ fi
|
|
|
+ done
|
|
|
+ echo "All processes stopped."
|
|
|
+ else
|
|
|
+ echo "No running process found for '"$app_name"' in '"$remote_dir"'"
|
|
|
+ fi
|
|
|
+ '
|
|
|
}
|
|
|
|
|
|
# 部署单个 JAR 包
|
|
@@ -51,7 +68,7 @@ deploy_jar() {
|
|
|
# 创建远程目录(如果不存在)
|
|
|
ssh "$REMOTE_USER@$REMOTE_HOST" "mkdir -p $REMOTE_BASE_DIR/$remote_dir"
|
|
|
# 停止旧版本
|
|
|
- stop_remote_app $app_name
|
|
|
+ stop_remote_app $app_name $remote_dir
|
|
|
|
|
|
# 上传 JAR 包
|
|
|
scp "$local_jar" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_BASE_DIR/$remote_dir/"
|
|
@@ -66,6 +83,8 @@ deploy_jar() {
|
|
|
# 部署 fs-admin
|
|
|
deploy_jar "$LOCAL_FS_ADMIN_JAR" "fs-admin"
|
|
|
|
|
|
+deploy_jar "$LOCAL_FS_API_JAR" "fs-api"
|
|
|
+
|
|
|
# 部署 fs-company
|
|
|
deploy_jar "$LOCAL_FS_COMPANY_JAR" "fs-company"
|
|
|
|