When launchd debuted with Tiger, Apple moved the execution of the periodic jobs, previously scheduled by cron, to launchd. I had been using anacron, as I wanted these jobs to run even if the machine had been off or asleep at the magic hour. Under Tiger, I kept using anacron, as there were lots of reports of launchd not reliably running repeating jobs.
In Leopard, these issues seemed to have been solved, and in my testing, launchd would reliably run the periodic jobs and even run them after wake up if the machine had been asleep during the scheduled time.
But I (and Apple) missed something: launchd still won’t run missed tasks if the machine is off when the job was scheduled.
(more…)