mirror of
https://github.com/ZoneMinder/zoneminder.git
synced 2026-09-22 18:45:43 -04:00
/proc/stat is invisible to any process in a mount namespace set up with ProcSubset=pid, which is systemd's default hardening for apache. Daemons started from the web ui are forked off mod_php and inherit it, so zmstats fell through to the top fallback, which reads /proc/stat as well and so produced no output either. Separate the missing-file case from the failed-open case so the message names the likely cause instead of printing a $! that a failed -e never set. Emit the warning once per process rather than once per ZM_STATS_UPDATE_INTERVAL. The condition does not clear itself, so it was filling zmstats.log with the same three lines a minute. split() on an empty $top_output returns an empty list, leaving all four values undef, so each fallback cycle also emitted four "Use of uninitialized value" warnings under -w. Default them before use. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019URmtYqza6Rzi6F7cmabSm