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:
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user