收敛后端重启脚本停机范围
This commit is contained in:
57
docs/tests/scripts/test-restart-java-backend-stop-scope.sh
Normal file
57
docs/tests/scripts/test-restart-java-backend-stop-scope.sh
Normal file
@@ -0,0 +1,57 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -eu
|
||||
|
||||
ROOT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")/../../.." && pwd)
|
||||
SOURCE_SCRIPT="$ROOT_DIR/bin/restart_java_backend.sh"
|
||||
TMP_DIR=$(mktemp -d)
|
||||
TEST_ROOT="$TMP_DIR/app"
|
||||
TEST_BIN_DIR="$TEST_ROOT/bin"
|
||||
TEST_LOG_DIR="$TEST_ROOT/logs"
|
||||
TEST_PORT=62481
|
||||
EXTERNAL_PID=""
|
||||
|
||||
cleanup() {
|
||||
if [ -n "${EXTERNAL_PID:-}" ] && kill -0 "$EXTERNAL_PID" 2>/dev/null; then
|
||||
kill "$EXTERNAL_PID" 2>/dev/null || true
|
||||
wait "$EXTERNAL_PID" 2>/dev/null || true
|
||||
fi
|
||||
rm -rf "$TMP_DIR"
|
||||
}
|
||||
|
||||
trap cleanup EXIT INT TERM
|
||||
|
||||
mkdir -p "$TEST_BIN_DIR" "$TEST_LOG_DIR"
|
||||
cp "$SOURCE_SCRIPT" "$TEST_BIN_DIR/restart_java_backend.sh"
|
||||
chmod +x "$TEST_BIN_DIR/restart_java_backend.sh"
|
||||
|
||||
python3 -m http.server "$TEST_PORT" --bind 127.0.0.1 > "$TMP_DIR/external.log" 2>&1 &
|
||||
EXTERNAL_PID=$!
|
||||
|
||||
sleep 1
|
||||
|
||||
if ! kill -0 "$EXTERNAL_PID" 2>/dev/null; then
|
||||
echo "失败: 未能启动外部占口进程"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
python3 - "$TEST_BIN_DIR/restart_java_backend.sh" "$TEST_PORT" <<'PY'
|
||||
from pathlib import Path
|
||||
import sys
|
||||
|
||||
script_path = Path(sys.argv[1])
|
||||
port = sys.argv[2]
|
||||
content = script_path.read_text(encoding="utf-8")
|
||||
content = content.replace("SERVER_PORT=62318", f"SERVER_PORT={port}")
|
||||
script_path.write_text(content, encoding="utf-8")
|
||||
PY
|
||||
|
||||
echo "[检查] stop 不能误杀未由脚本托管的占口进程"
|
||||
sh "$TEST_BIN_DIR/restart_java_backend.sh" stop >/dev/null 2>&1 || true
|
||||
|
||||
if ! kill -0 "$EXTERNAL_PID" 2>/dev/null; then
|
||||
echo "失败: stop 误杀了未托管的外部进程"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "通过"
|
||||
Reference in New Issue
Block a user