Add wiki refresh command and service updates

This commit is contained in:
OpenCode
2026-04-24 10:02:39 -06:00
parent 78676ece59
commit 7360cd040a
7 changed files with 97 additions and 22 deletions
+1 -1
View File
@@ -128,7 +128,7 @@ service_command() {
"$COURSEWARE_CHUNKVIZ_PORT"
;;
embedding-atlas)
printf 'exec "%s/bin/embedding-atlas" "%s" --text "Scenario" --host %s --port %s' \
printf 'exec "%s/bin/embedding-atlas" "%s" --text "Scenario" --host %s --port %s --no-auto-port' \
"$EMBEDDING_ATLAS_VENV" \
"$TTPS_DATASET_PATH" \
"$COURSEWARE_BIND_HOST" \
+56 -1
View File
@@ -112,6 +112,18 @@ is_running() {
has_live_pid "$service" || service_ready "$service"
}
service_startup_attempts() {
case "$1" in
embedding-atlas)
# The first launch can be noticeably slower on cold environments.
printf '%s\n' 180
;;
*)
printf '%s\n' 60
;;
esac
}
service_ready() {
local service=$1
@@ -142,6 +154,22 @@ service_listener_pids() {
| sort -u
}
service_port_has_listener() {
local service=$1
local port
port=$(service_port "$service") || return 1
ss -ltnH "( sport = :$port )" 2>/dev/null | grep -q .
}
service_listener_details() {
local service=$1
local port
port=$(service_port "$service") || return 0
ss -ltnp "( sport = :$port )" 2>/dev/null || true
}
kill_pid_tree() {
local signal=$1
local pid=$2
@@ -177,6 +205,7 @@ start_one() {
local pid_file
local attempt
local pid_grace_attempts=5
local startup_attempts
if [ "$service" = "ollama" ] || [ "$service" = "wiki" ]; then
assert_ollama_logprobs_support
@@ -204,6 +233,7 @@ start_one() {
esac
cmd=$(service_command "$service")
startup_attempts=$(service_startup_attempts "$service")
log_file=$(service_log_file "$service")
pid_file=$(service_pid_file "$service")
@@ -219,7 +249,7 @@ start_one() {
fi
echo $! >"$pid_file"
for attempt in $(seq 1 60); do
for attempt in $(seq 1 "$startup_attempts"); do
if service_ready "$service"; then
echo "started $service"
return 0
@@ -286,6 +316,28 @@ stop_one() {
exit 1
}
restart_managed_wiki() {
local wiki_log_file
wiki_log_file=$(service_log_file wiki)
if has_live_pid wiki; then
stop_one wiki
fi
if service_port_has_listener wiki; then
cat <<EOF >&2
Cannot restart wiki because port $(service_port wiki) is already in use by a non-managed listener.
Listener details:
$(service_listener_details wiki)
Leave that process alone or move it off port $(service_port wiki), then rerun ./labctl update_wiki.
Wiki log: $wiki_log_file
EOF
exit 1
fi
start_one wiki
}
status_one() {
local service=$1
@@ -388,6 +440,9 @@ main() {
fi
show_logs "$1"
;;
restart-wiki)
restart_managed_wiki
;;
*)
echo "Unknown command: $cmd" >&2
exit 1