Local dashboard: plain-language status checklist and C2-free listening
- /api/health: ordered checklist (password, C2 approval, MQTT, SDR, source,
OP25, decoding, audio, Icecast) with what's wrong and what to do; pure
build_checks() so every state (incl. Toughny's unapproved node) is tested
- /api/listen: pick P25 control channels / one analog freq / a cached C2
system, validated in MHz, stored as a local override; OP25 restarted with
the start failure reason surfaced
- /api/config/system no longer writes a raw blob OP25 can't read
- OP25 resumes after reboot on a locally chosen system, not only C2-assigned
- op25-container: analog (NBFM) config generation fixed (AttributeError +
wrong field names), /op25/log tail, start refuses without a config,
status detects a dead multi_rx ("crashed") -- node-26#12
- index.html rebuilt on UI_REDESIGN tokens; scanner drops DMR, shows System key
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
6bf2c9dd93
commit
10f7db0a2c
@@ -19,4 +19,13 @@ LIQ_PID=$! # Store the PID of the op25.liq process
|
||||
# until multi_rx.py is externally stopped (via the API).
|
||||
# The trap command ensures that SIGTERM is passed to the background jobs.
|
||||
trap "kill $MULTI_RX_PID $LIQ_PID" SIGTERM SIGINT
|
||||
wait $MULTI_RX_PID
|
||||
wait $MULTI_RX_PID
|
||||
RC=$?
|
||||
|
||||
# multi_rx is gone (crashed, or SDR could not be opened). Take liquidsoap down
|
||||
# with it so nothing in this process group outlives the decoder — a leftover
|
||||
# liquidsoap kept /op25/status reporting "running" (node-26#12) and held the
|
||||
# Icecast mount against the next start.
|
||||
echo "multi_rx.py exited (code $RC) — stopping liquidsoap."
|
||||
kill $LIQ_PID 2>/dev/null
|
||||
exit $RC
|
||||
Reference in New Issue
Block a user