Files
Varaverk/Plugin/unraid/event/disks_mounted/array_start_jobs
T
Gmer4Lfe df3c4bb369 Stop signalling on the strength of a stat file alone
A job killed hard never corrects its own record, so 'running' outlives the
process and the pid can since belong to something else; array-start jobs get
setsid too, so Stop can reach past their direct children.
2026-08-08 13:50:01 -04:00

21 lines
1.0 KiB
Bash
Executable File

#!/bin/bash
# Varaverk: fire all jobs with cron=array_start (background — non-blocking).
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_start') continue;
if (empty(\$e['enabled'])) continue;
\$script = strncmp(\$id, 'Custom/', 7) === 0
? CUSTOM_SCRIPTS_DIR . '/' . substr(\$id, 7)
: SCRIPTS_DIR . '/' . \$id;
if (!file_exists(\$script)) continue;
\$flags = !empty(\$e['log_enabled']) ? ' --log' : '';
// setsid for the same reason as api/run.php: the job must lead its own process group or
// api/stop.php cannot signal the tree, only the parent and its direct children.
exec('setsid nohup bash ' . escapeshellarg(\$runner) . ' ' . escapeshellarg(\$id) . ' ' . escapeshellarg(\$script) . \$flags . ' > /dev/null 2>&1 &');
}
" 2>/dev/null