[launchd-dev] Is there anything that can prevent launchd from working
Scott Haneda
talklists at newgeo.com
Mon Jun 1 12:47:36 PDT 2009
On Jun 1, 2009, at 12:32 PM, Damien Sorresso wrote:
> On Jun 1, 2009, at 12:00 PM, Scott Haneda wrote:
>> In a case where launchd works just fine all the time, for example:
>>
>> [snip...]
>> echo "Sleeping...90 Seconds `date`" >> $log_path
>> /bin/sleep 90;
>>
>> # Do the work
>> echo "About to run ntpdate -u" >> $log_path
>> /usr/sbin/ntpdate -u
>> echo "Finished running ntpdate -u" >> $log_path
>>
>> log... (Full output, non shortened)
>> ----- BEGIN -----
>> Started to set time and date
>> Mon Jun 1 11:18:35 PDT 2009
>> Sleeping...30 Seconds Mon Jun 1 11:18:36 PDT 2009
>> Sleeping...30 Seconds Mon Jun 1 11:19:06 PDT 2009
>> Sleeping...15 Seconds Mon Jun 1 11:19:36 PDT 2009
>> About to run ntpdate -u
>> Finished running ntpdate -u
>> Finished setting time and date
>> ----- END -----
>
> You should use the StandardOutPath key (pointing to /Users/me/
> Library/Logs/ntpdate.lo) in your launchd job, that way your script
> doesn't have to worry about echo(1)ing to a log file. Its stdout
> will just be redirected to the log file. This results in less
> complexity for your script.
Nice, thanks. What gets passed into StandardOutPath? I assume
anything the script outputs via a plain echo, will be intercepted to
the log? This is really nice, as I can then debug scripts as usual,
and not have to run a tail -f on some log somewhere.
>> Syslog tells me it works:
>> Jun 1 10:57:41 host com.host.ntpdate[19696]: 1 Jun 10:57:41
>> ntpdate[19776]: adjust time server 17.151.16.21 offset -0.070842 sec
>>
>> It works all the time, sans one case, which is when I need it
>> most. I hope there are people here who know a but about the kernel
>> of OS X. When the machine panics, which I am still working on
>> determining why, I suspect ram, though on the 3rd batch. I have
>> 100% ruled out a bad pram battery.
>>
>> After a panic, the "automatically restart after power failure"
>> feature does not work. It does work any other time, only after
>> panics does not it. I have to physically reboot. This also adds
>> more credence to the battery being fine.
>>
>> When the machine comes up, there is a message on screen about the
>> date and time being at 1969. Doing a google search for "panic
>> 1969" and you see there are a good deal of others with panic logs
>> at 1969. I conclude, panics mess with the date and time for some
>> reason, or nuke nvram, not sure.
>>
>> No big deal really, though this is an email server, and if I
>> forget, or do not have access, the date and time will continue to
>> be wrong, and all emails will be wrongly dated.
>>
>> My plist is set to run at load, and also to run every 60 minutes,
>> which I see it does do. I can find a syslog line that shows it ran
>> at load, and ones that show it runs every hour as well.
>>
>> launchd totally fails to run this item after a kernel panic and the
>> date is set into the 1969 range. I have the sys log for where the
>> dates are all Dec 31, which is just after the panic, and after I
>> called in a reboot, which then foiled my script from setting the
>> date correctly.
>>
>> I see named started, which uses launchd, so I know it is working.
>> I see a lot of other things start. But then I see this:
>>
>> Dec 31 16:00:54 host-domain-com com.apple.launchd[1]
>> (com.domain.ntpdate[50]): Exited with exit code: 1
>
> You're drawing bad conclusions. launchd did, in fact, start the job.
> It has a PID and exit status and everything. The job just exited
> unsuccessfully. Not really launchd's fault. Don't interpret "The job
> failed" as "launchd did not start the job". All we do is start the
> job and get out of the way.
Ok, understood. The trouble is, ntpdate is failing then, and I have
no way to get the date set to 1969. Any attempts to do so via GUI,
drop it back to current date. I can shove it to some other date, but
ntpdate does not error when run.
How can I mimic from an interactive shell exactly what launchd is
doing, so I know I am on the same page? Any idea how to get the
system clock into 1969? I really do not want to pull a pram battery
in this laptop :)
Thanks so much, I will follow up and see if I can find a ntpdate list.
--
Scott * If you contact me off list replace talklists@ with scott@ *
More information about the launchd-dev
mailing list