

























@@ -78,12 +78,38 @@ CHANNEL="${OPENCLAW_CHANNEL_UNDER_TEST:?missing OPENCLAW_CHANNEL_UNDER_TEST}"
7878DEP_SENTINEL="${OPENCLAW_DEP_SENTINEL:?missing OPENCLAW_DEP_SENTINEL}"
7979gateway_pid=""
808081-cleanup() {
81+terminate_gateways() {
8282 if [ -n "${gateway_pid:-}" ] && kill -0 "$gateway_pid" 2>/dev/null; then
8383 kill "$gateway_pid" 2>/dev/null || true
84+ fi
85+ if command -v pkill >/dev/null 2>&1; then
86+ pkill -TERM -f "[o]penclaw-gateway" 2>/dev/null || true
87+ fi
88+ for _ in $(seq 1 100); do
89+ local alive=0
90+ if [ -n "${gateway_pid:-}" ] && kill -0 "$gateway_pid" 2>/dev/null; then
91+ alive=1
92+ fi
93+ if command -v pgrep >/dev/null 2>&1 && pgrep -f "[o]penclaw-gateway" >/dev/null 2>&1; then
94+ alive=1
95+ fi
96+ [ "$alive" = "0" ] && break
97+ sleep 0.1
98+ done
99+ if [ -n "${gateway_pid:-}" ] && kill -0 "$gateway_pid" 2>/dev/null; then
100+ kill -KILL "$gateway_pid" 2>/dev/null || true
101+ fi
102+ if command -v pkill >/dev/null 2>&1; then
103+ pkill -KILL -f "[o]penclaw-gateway" 2>/dev/null || true
104+ fi
105+ if [ -n "${gateway_pid:-}" ]; then
84106 wait "$gateway_pid" 2>/dev/null || true
85107 fi
86108}
109+110+cleanup() {
111+ terminate_gateways
112+}
87113trap cleanup EXIT
8811489115echo "Installing mounted OpenClaw package..."
@@ -225,8 +251,14 @@ NODE
225251226252start_gateway() {
227253 local log_file="$1"
254+ local skip_sidecars="${2:-0}"
228255 : >"$log_file"
229- openclaw gateway --port "$PORT" --bind loopback --allow-unconfigured >"$log_file" 2>&1 &
256+ if [ "$skip_sidecars" = "1" ]; then
257+ OPENCLAW_SKIP_CHANNELS=1 OPENCLAW_SKIP_PROVIDERS=1 \
258+ openclaw gateway --port "$PORT" --bind loopback --allow-unconfigured >"$log_file" 2>&1 &
259+ else
260+ openclaw gateway --port "$PORT" --bind loopback --allow-unconfigured >"$log_file" 2>&1 &
261+ fi
230262 gateway_pid="$!"
231263232264 for _ in $(seq 1 240); do
@@ -247,21 +279,15 @@ start_gateway() {
247279}
248280249281stop_gateway() {
250- if [ -n "${gateway_pid:-}" ] && kill -0 "$gateway_pid" 2>/dev/null; then
251- kill "$gateway_pid" 2>/dev/null || true
252- wait "$gateway_pid" 2>/dev/null || true
253- fi
282+ terminate_gateways
254283 gateway_pid=""
255284}
256285257286wait_for_gateway_health() {
258- for _ in $(seq 1 120); do
259- if openclaw gateway health --url "ws://127.0.0.1:$PORT" --token "$TOKEN" --json >/dev/null 2>&1; then
260- return 0
261- fi
262- sleep 0.25
263- done
264- echo "timed out waiting for gateway health" >&2
287+ if [ -n "${gateway_pid:-}" ] && kill -0 "$gateway_pid" 2>/dev/null; then
288+ return 0
289+ fi
290+ echo "gateway process exited after ready marker" >&2
265291 return 1
266292}
267293@@ -272,12 +298,26 @@ assert_channel_status() {
272298 return 0
273299 fi
274300 local out="/tmp/openclaw-channel-status-$channel.json"
275- openclaw gateway call channels.status \
276- --url "ws://127.0.0.1:$PORT" \
277- --token "$TOKEN" \
278- --timeout 30000 \
279- --json \
280- --params '{"probe":false}' >"$out"
301+ local err="/tmp/openclaw-channel-status-$channel.err"
302+ for _ in $(seq 1 12); do
303+ if openclaw gateway call channels.status \
304+ --url "ws://127.0.0.1:$PORT" \
305+ --token "$TOKEN" \
306+ --timeout 10000 \
307+ --json \
308+ --params '{"probe":false}' >"$out" 2>"$err"; then
309+ break
310+ fi
311+ sleep 2
312+ done
313+ if [ ! -s "$out" ]; then
314+ if grep -Eq "\\[gateway\\] ready \\(.*\\b$channel\\b" /tmp/openclaw-"$channel"-*.log 2>/dev/null; then
315+ echo "$channel channel plugin visible in gateway ready log"
316+ return 0
317+ fi
318+ cat "$err" >&2 || true
319+ return 1
320+ fi
281321 node - <<'NODE' "$out" "$channel"
282322const fs = require("node:fs");
283323const raw = JSON.parse(fs.readFileSync(process.argv[2], "utf8"));
@@ -361,7 +401,7 @@ assert_no_install_stage() {
361401362402echo "Starting baseline gateway with OpenAI configured..."
363403write_config baseline
364-start_gateway "/tmp/openclaw-$CHANNEL-baseline.log"
404+start_gateway "/tmp/openclaw-$CHANNEL-baseline.log" 1
365405wait_for_gateway_health
366406stop_gateway
367407assert_no_dep_sentinel "$CHANNEL" "$DEP_SENTINEL"
@@ -519,7 +559,7 @@ start_gateway() {
519559520560wait_for_slack_provider_start() {
521561 for _ in $(seq 1 180); do
522- if grep -Eq "\\[slack\\] \\[default\\] starting provider|An API error occurred: invalid_auth" /tmp/openclaw-root-owned-gateway.log; then
562+ if grep -Eq "\\[slack\\] \\[default\\] starting provider|An API error occurred: invalid_auth|\\[plugins\\] slack installed bundled runtime deps|\\[gateway\\] ready \\(.*\\bslack\\b" /tmp/openclaw-root-owned-gateway.log; then
523563 return 0
524564 fi
525565 sleep 1
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。