diff --git a/Plugin/usr/local/emhttp/plugins/varaverk/include/scheduler.php b/Plugin/usr/local/emhttp/plugins/varaverk/include/scheduler.php index 91d525c..c89c5c5 100644 --- a/Plugin/usr/local/emhttp/plugins/varaverk/include/scheduler.php +++ b/Plugin/usr/local/emhttp/plugins/varaverk/include/scheduler.php @@ -59,11 +59,15 @@ function vv_cron_rebuild(array $schedule): bool { $logDir = dirname($logFile); if (!is_dir($logDir)) mkdir($logDir, 0755, true); $flags = !empty($entry['log_enabled']) ? ' --log' : ''; - $lines[] = "{$entry['cron']} " . CRON_USER . " bash \"$script\"$flags >> \"$logFile\" 2>&1"; + $lines[] = "{$entry['cron']} bash \"$script\"$flags >> \"$logFile\" 2>&1"; } $lines[] = ""; - return file_put_contents(CRON_FILE, implode("\n", $lines)) !== false; + // dcron (dillon's cron, Unraid's system crond) reads /etc/cron.d/ but refuses + // world-writable files and does not use a username field in system crontab format. + if (file_put_contents(CRON_FILE, implode("\n", $lines)) === false) return false; + chmod(CRON_FILE, 0600); + return true; } // Extract the suggested cron and label from a bash script header.