From 5bac91a664ea52da45bfe4c1788e80ec46158ccc Mon Sep 17 00:00:00 2001 From: rcourtman Date: Sun, 9 Nov 2025 16:44:08 +0000 Subject: [PATCH] Fix pulse-sensor-proxy configuration not applied in LXC containers (related to #600) This fixes two bugs that prevented temperature monitoring from working after running install-sensor-proxy.sh on LXC deployments: 1. CRITICAL: Pulse service not restarted after systemd override - The installer wrote PULSE_SENSOR_PROXY_SOCKET env var to systemd drop-in and ran daemon-reload, but never restarted Pulse service - Running Pulse instances continued using old environment variables - Temperatures wouldn't work until manual Pulse restart - Now: Automatically restart Pulse if running after writing override 2. Added guard to check if Pulse service exists before configuring - Installer would write systemd override even if Pulse not installed - Left orphaned drop-in files that confused users - Now: Check if pulse.service exists, warn and skip if not found 3. MINOR: Fix inconsistent Docker mount instructions - docker-compose.yml showed :ro (read-only) mount - Installer output showed :rw (read-write) mount - Changed installer to match compose file (:ro is correct and secure) Impact: Users in #600 reported "socketFound=false" even after running installer successfully. This was because Pulse never picked up the new socket path without a restart. --- scripts/install-sensor-proxy.sh | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/scripts/install-sensor-proxy.sh b/scripts/install-sensor-proxy.sh index 8a5e175..327980a 100755 --- a/scripts/install-sensor-proxy.sh +++ b/scripts/install-sensor-proxy.sh @@ -1446,12 +1446,27 @@ fi # Configure Pulse backend environment override inside container print_info "Configuring Pulse to use proxy..." -pct exec "$CTID" -- bash -lc "mkdir -p /etc/systemd/system/pulse.service.d" -pct exec "$CTID" -- bash -lc "cat <<'EOF' >/etc/systemd/system/pulse.service.d/10-pulse-proxy.conf + +# Check if Pulse service exists in container before configuring +if ! pct exec "$CTID" -- systemctl status pulse >/dev/null 2>&1; then + print_warn "Pulse service not found in container $CTID; skipping proxy configuration" + print_info "Install Pulse in the container first, then re-run this installer" +else + pct exec "$CTID" -- bash -lc "mkdir -p /etc/systemd/system/pulse.service.d" + pct exec "$CTID" -- bash -lc "cat <<'EOF' >/etc/systemd/system/pulse.service.d/10-pulse-proxy.conf [Service] Environment=PULSE_SENSOR_PROXY_SOCKET=${MOUNT_TARGET}/pulse-sensor-proxy.sock EOF" -pct exec "$CTID" -- systemctl daemon-reload || true + pct exec "$CTID" -- systemctl daemon-reload || true + + # Restart Pulse service to apply the new environment variable + if pct exec "$CTID" -- systemctl is-active --quiet pulse 2>/dev/null; then + print_info "Restarting Pulse service to apply configuration..." + pct exec "$CTID" -- systemctl restart pulse + sleep 2 + print_success "Pulse service restarted with proxy configuration" + fi +fi # Test proxy status print_info "Testing proxy status..." @@ -1584,7 +1599,7 @@ else echo "" echo " volumes:" echo " - pulse-data:/data" - echo " - /run/pulse-sensor-proxy:/run/pulse-sensor-proxy:rw" + echo " - /run/pulse-sensor-proxy:/run/pulse-sensor-proxy:ro" echo "" print_info "Then restart your Pulse container:" echo " docker-compose down && docker-compose up -d"