On Dec 4, 2007, at 7:55 PM, Jeremy Reichman wrote:
I haven't found a way to do this after looking over the docs (but not the new TechNote) ... I am wondering if there is a way to have two or more launchd tasks that call the same script coalesce into the same event during events like wake from sleep.
For example, what if the same script is called by both a nightly job, and a weekly job? Are the various instances of the jobs that would have run automatically then coalesced into one instance if their scheduled execution is missed?
Or, if not, is there a way to have some other cross-job identifier that is shared by multiple launchd jobs so that the same target script is not run more than once?
Launchd does not run multiple instances of the same job. Instead each of the criteria listed in the launchd plist is a reason to start the job only if the job is not already running. StartCalendarInterval supports an array of dictionaries -- you could specify both a nightly time and a weekly time in the same plist, either one of which will cause the job to be run, but not twice when the nightly and weekly times coincide. - Kevin