launchd : cron with less suck?

So while figuring out launchd I came across the revelation that launchd will run any tasks it is given at it’s prescribed time, or the next time available (eg. the computer is asleep or turned off). I now remember hearing that when 10.4 Tiger was first released but had completely forgot it. Since Apple has the periodic tasks running in launchd instead of cron in Tiger, this makes the often touted reason to run Onyx moot and useless.

The system runs the scripts when it can (when it’s supposed to, or when you turn your computer on next), and doesn’t just “not run them” as cron would.

Running the periodic scripts sounds just as helpful as “Repairing Permissions” now, but I may be underestimating the value of the placebo effect.

Source: man launchd.plist

  StartCalendarInterval <dictionary of integers>
  This optional key causes the job to be started every calendar interval as
  specified. Missing arguments are considered to be wildcard. The semantics are much
  like crontab(5).  
  Unlike cron which skips job invocations when the computer is asleep, launchd will start the job the next time the computer wakes up.   
  If multiple intervals transpire before the computer is woken, those events will be
  coalesced into one event upon wake from sleep.

So for replacing cron? launchd kicks ass. I’m disappointed it took me until 10.4.9’s release for me to truly start finding out the power of launchd.