git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 1/1] maintenance: fix launchctl calendar intervals

From
Josh Heinrichs <joshiheinrichs@gmail.com>
Date
Apr 21, 2025, 05:46 UTC
Message-ID
<20250421054633.231069-2-joshiheinrichs@gmail.com>
In-Reply-To
<20250421054633.231069-1-joshiheinrichs@gmail.com>

When using the launchctl scheduler, the weekly job runs daily, and the daily job runs on the first six days of each month. This appears to be due to specifying "Day" in the calendar intervals, which according to launchd.plist(5) is for specifying days of the month rather than days of the week. The behaviour of running a job on the 0th day is undocumented, but in my testing appears to be the same as not specifying "Day" in the calendar interval, in which case the job will run daily.

Use "Weekday" in the calendar intervals, which is the correct way to schedule jobs to run on specific days of the week.

Signed-off-by: Josh Heinrichs <joshiheinrichs@gmail.com>
---
 builtin/gc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/builtin/gc.c b/builtin/gc.c
index 99431fd467..cc13baa3bd 100644
--- a/builtin/gc.c
+++ b/builtin/gc.c
@@ -2075,7 +2075,7 @@ static int launchctl_schedule_plist(const char *exec_path, enum schedule_priorit
 
 	case SCHEDULE_DAILY:
 		repeat = "<dict>\n"
-			 "<key>Day</key><integer>%d</integer>\n"
+			 "<key>Weekday</key><integer>%d</integer>\n"
 			 "<key>Hour</key><integer>0</integer>\n"
 			 "<key>Minute</key><integer>%d</integer>\n"
 			 "</dict>\n";
@@ -2086,7 +2086,7 @@ static int launchctl_schedule_plist(const char *exec_path, enum schedule_priorit
 	case SCHEDULE_WEEKLY:
 		strbuf_addf(&plist,
 			    "<dict>\n"
-			    "<key>Day</key><integer>0</integer>\n"
+			    "<key>Weekday</key><integer>0</integer>\n"
 			    "<key>Hour</key><integer>0</integer>\n"
 			    "<key>Minute</key><integer>%d</integer>\n"
 			    "</dict>\n",
-- 
2.47.2
Previous: Josh HeinrichsNext: Junio C Hamano
Message 2 of 5 in “maintenance: fix launchctl calendar intervals”
  1. 0/1 maintenance: fix launchctl calendar intervalsJosh Heinrichs, Apr 21, 2025
  2. 1/1 maintenance: fix launchctl calendar intervalsJosh Heinrichs, Apr 21, 2025
  3. Junio C HamanoApr 21, 2025
  4. Derrick StoleeApr 23, 2025
  5. Junio C HamanoApr 23, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.