Bypass PHP chain in array_stop_jobs — call array_stopping.sh directly via run_job.sh

PHP scheduler load at shutdown time can fail silently (errors suppressed); a failed PHP call meant the stop script never ran without any visible indication.
This commit is contained in:
Gmer4Lfe
2026-06-22 12:45:31 -04:00
parent 719ca016f4
commit 86b8e894e5
@@ -1,16 +1,9 @@
#!/bin/bash
# Varaverk: fire all jobs with cron=array_stop (foreground — blocks until all done).
php -r "
require_once '/usr/local/emhttp/plugins/varaverk/include/scheduler.php';
\$s = vv_schedule_load();
\$runner = '/usr/local/emhttp/plugins/varaverk/run_job.sh';
foreach (\$s as \$id => \$e) {
if (strncmp(\$id, '__', 2) === 0) continue;
if ((\$e['cron'] ?? '') !== 'array_stop') continue;
if (empty(\$e['enabled'])) continue;
\$script = SCRIPTS_DIR . '/' . \$id;
if (!file_exists(\$script)) continue;
\$flags = !empty(\$e['log_enabled']) ? ' --log' : '';
passthru('bash ' . escapeshellarg(\$runner) . ' ' . escapeshellarg(\$id) . ' ' . escapeshellarg(\$script) . \$flags);
}
" 2>/dev/null
# Varaverk: run array_stopping.sh on array stop (foreground — blocks until done).
# Direct bash call to avoid PHP/scheduler chain failing silently at shutdown time.
SCRIPTS_DIR="/boot/config/plugins/varaverk"
cfg="$SCRIPTS_DIR/varaverk.cfg"
[[ -f "$cfg" ]] && _sd=$(grep -oP '(?<=^SCRIPTS_DIR=")[^"]+' "$cfg" 2>/dev/null) && [[ -n "$_sd" ]] && SCRIPTS_DIR="$_sd"
runner="$SCRIPTS_DIR/Plugin/unraid/run_job.sh"
script="$SCRIPTS_DIR/Orchestrators/array_stopping.sh"
[[ -f "$script" ]] && bash "$runner" "Orchestrators/array_stopping.sh" "$script"