From 6a3dd4f83c1580e78a9c2341a0db9fe72a49b583 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Sat, 22 Nov 2025 12:06:01 +0800 Subject: [PATCH] Fix null log_name issue by omitting it from shell command when not set (#2849) * Initial plan * Fix null log_name handling in runSingle method Co-authored-by: whyour <22700758+whyour@users.noreply.github.com> * Update cron.log_name before makeCommand to avoid passing null to shell Co-authored-by: whyour <22700758+whyour@users.noreply.github.com> * Fix: Only pass log_name to shell when it has a value Co-authored-by: whyour <22700758+whyour@users.noreply.github.com> * Fix uniqPath calculation in runSingle for null log_name Co-authored-by: whyour <22700758+whyour@users.noreply.github.com> * Improve comment clarity in makeCommand Co-authored-by: whyour <22700758+whyour@users.noreply.github.com> * Refactor: Move no_tee and ID to initial commandVariable declaration Co-authored-by: whyour <22700758+whyour@users.noreply.github.com> * Refactor: Simplify uniqPath ternary expression Co-authored-by: whyour <22700758+whyour@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: whyour <22700758+whyour@users.noreply.github.com> --- back/services/cron.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/back/services/cron.ts b/back/services/cron.ts index ad08998c..bdfe6c51 100644 --- a/back/services/cron.ts +++ b/back/services/cron.ts @@ -507,7 +507,7 @@ export default class CronService { let { id, command, log_name } = cron; const uniqPath = - log_name === '/dev/null' + log_name === '/dev/null' || !log_name ? await getUniqPath(command, `${id}`) : log_name; const logTime = dayjs().format('YYYY-MM-DD-HH-mm-ss-SSS'); @@ -641,7 +641,11 @@ export default class CronService { if (!command.startsWith(TASK_PREFIX) && !command.startsWith(QL_PREFIX)) { command = `${TASK_PREFIX}${tab.command}`; } - let commandVariable = `real_time=${Boolean(realTime)} log_name=${tab.log_name} no_tee=true ID=${tab.id} `; + let commandVariable = `real_time=${Boolean(realTime)} no_tee=true ID=${tab.id} `; + // Only include log_name if it has a truthy value to avoid passing null/undefined to shell + if (tab.log_name) { + commandVariable += `log_name=${tab.log_name} `; + } if (tab.task_before) { commandVariable += `task_before='${tab.task_before .replace(/'/g, "'\\''")