According to the man(5) page for launchd.plist in El Capitan, StartInterval does not behave as it did in 10.9. I don't have 10.10 installed somewhere handy at the moment, so I can't tell if the same thing was stated in 10.10 also.
In 10.9, the man page states:
StartInterval <integer>
This optional key causes the job to be started every N seconds. If the system is asleep, the job will be started 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.
In 10.11, the man page says:
StartInterval <integer>
This optional key causes the job to be started every N seconds. If the system is asleep during the time of the next scheduled interval firing, that interval will be missed due to shortcomings in kqueue(3). If the job is running during an interval firing, that interval firing will likewise be
missed.
1. Is this a real change? I don't remeber hearing anything about it, and it's a rather large change in meaning of the StartInterval key.
2. If this is a real change, what is the suggested way of scheduling a job that must run at least X hours regardless of sleep?
Thanks,
Ryan