guanghu-ice-heart/server-tools/hololake-code-channel/start-candidate.sh
bingshuo 8485822da6 feat: add fixed enterprise Agent gate
Part 2/4 of verified local 18dfdfd: fail-closed navigation and intent gate, fixed Agent connector, loopback code-channel candidate scripts and tests.
2026-07-26 23:13:12 +08:00

44 lines
1.2 KiB
Shell
Executable file

#!/usr/bin/env bash
set -euo pipefail
readonly HLCC_ROOT="/var/lib/guanghu-enterprise-code-channel/candidates/hlcc-v16.0.1"
readonly HLCC_PID_FILE="${HLCC_ROOT}/hlcc.pid"
readonly HLCC_LOG_FILE="${HLCC_ROOT}/logs/hlcc.log"
if [[ "$(id -un)" != "guanghu" ]]; then
echo "Refusing to start a domestic isolated candidate as any user other than guanghu." >&2
exit 2
fi
if ! command -v curl >/dev/null 2>&1; then
echo "Missing required command: curl" >&2
exit 3
fi
if [[ -f "${HLCC_PID_FILE}" ]]; then
readonly existing_pid="$(cat "${HLCC_PID_FILE}")"
if kill -0 "${existing_pid}" 2>/dev/null; then
echo "HLCC candidate is already running as PID ${existing_pid}."
exit 0
fi
fi
nohup "${HLCC_ROOT}/bin/hlcc" web \
--work-path "${HLCC_ROOT}/data" \
--config "${HLCC_ROOT}/config/app.ini" \
>>"${HLCC_LOG_FILE}" 2>&1 &
readonly candidate_pid="$!"
echo "${candidate_pid}" > "${HLCC_PID_FILE}"
sleep 2
if ! kill -0 "${candidate_pid}" 2>/dev/null; then
echo "HLCC candidate failed to remain running." >&2
tail -n 80 "${HLCC_LOG_FILE}" >&2
exit 5
fi
curl --fail --silent --show-error \
"http://127.0.0.1:3340/api/healthz"
echo
echo "HLCC isolated candidate is running on loopback only."