Add wiki refresh command and service updates
This commit is contained in:
+1
-1
@@ -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" \
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user