Automatically Load LaunchDaemon? I wrote a little script to automatically update my Network Location based on a couple of conditions, and have coupled that with a launchd plist to have it run every couple of minutes.

However, I've noticed that my launchd plist doesn't seem to get loaded when my computer reboots.  My plist is in ~/Library/LaunchDaemons and is fairly simple:

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;
&lt;plist version="1.0"&gt;
&lt;dict&gt;
    &lt;key&gt;Label&lt;/key&gt;
    &lt;string&gt;com.davedelong.location-updater&lt;/string&gt;
    &lt;key&gt;Program&lt;/key&gt;
    &lt;string&gt;/path/to/my/location_updater.rb&lt;/string&gt;
    &lt;key&gt;StartInterval&lt;/key&gt;
    &lt;integer&gt;180&lt;/integer&gt;
&lt;/dict&gt;
&lt;/plist&gt;


My LaunchDaemons folder has the expected 700 permissions, and running launchctl load with my plist makes things work just fine.  It's just that when I reboot, it's not getting loaded.

I was under the impression that everything in ~/Library/LaunchDaemons and ~/Library/LaunchAgents got loaded automatically by launchd.  Is this not the case?  If this is the case (and I think it is), then why isn't my plist getting loaded?
~/Library/LaunchDaemons isn't a valid location for either launch agents or launch daemons. You are misunderstanding the terminology. LaunchDaemons are system-wide processes, while LaunchAgents are run per-user. From the launchd man page:

~/Library/LaunchAgents         Per-user agents provided by the user.
/Library/LaunchAgents          Per-user agents provided by the administrator.
/Library/LaunchDaemons         System-wide daemons provided by the administrator.
/System/Library/LaunchAgents   Per-user agents provided by Mac OS X.
/System/Library/LaunchDaemons  System-wide daemons provided by Mac OS X.


Move your plist to ~/Library/LaunchAgents, and it should just work.