Since August 2013, I am using Mac Mini with OS X version 10.8.2 as my web server (MAMP stack). I have a few launchd scheduled jobs scheduled through plist.
Everything was working fine until Nov 3, 2013, Sunday. The Daylight Saving Time change on that day caused some issues. Initially we thought that the jobs schedule to run around 2 am run twice for example the job scheduled to run at 02:45 am run at 01:45 am and again run at 02:45.
Later from a detailed examination of the log files we found that it is not only the jobs between 1 am and 2 am but all jobs run on that day run twice, exactly one hour before the actual time and on the scheduled time. From next day onwards launchd started behaving normally. I thought the launchd has the ability to handle Daylight Saving Time changes properly, as how cron handles it, but to my surprise I am unable to find any information about that in the launchd manual or support forums.
According to the last comment in this thread from Apple's support forum I have to believe 'The problem lies deep into Launchd mechanism'. If that is true how launchd is going to behave on the upcoming DST change on 9th March where 2:00 am to 3:00 am will be skipped is unpredictable. Can any one suggest its behaviour on a DST start change? How can I make it handle a DST end change, so that it wont run the jobs twice? EST 2014 is the time zone of the server.
The plist format I am using is:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>report.groups</string> <key>ProgramArguments</key> <array> <string>php</string> <string>/var/www/mysite/reports/generateReportGroups.php</string> </array> <key>StartCalendarInterval</key> <dict> <key>Hour</key> <integer>2</integer> <key>Minute</key> <integer>45</integer> </dict> </dict> </plist>