On Mon, Jul 6, 2009 at 11:45 PM, Damien Sorresso
<dsorresso@apple.com> wrote:
On Jul 6, 2009, at 10:11 PM, Conrad Taylor wrote:
Hi, I'm attempting to configure the MySQL launchd plist file to launch MySQL process only when needed. At this time, it's launched at boot/startup and it stays alive. At this time, the script looks as follows:
BEGIN org.macports.mysql5.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Debug</key>
<false/>
<key>Label</key>
<string>org.macports.mysql5</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/opt/local/bin/daemondo</string>
<string>--label=mysql5</string>
<string>--start-cmd</string>
<string>/opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper</string>
<string>start</string>
<string>;</string>
<string>--stop-cmd</string>
<string>/opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper</string>
<string>stop</string>
<string>;</string>
<string>--restart-cmd</string>
<string>/opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper</string>
<string>restart</string>
<string>;</string>
<string>--pid=none</string>
</array>
<key>RunAtLoad</key>
<false/>
</dict>
</plist>
END org.macports.mysql5.plist:
When you start inserting semi-colons into your ProgramArguments, it's time to wrap it all up in a simple shell script.
I changed the above key/value pair to OnDemand/true. Now, the process doesn't start when I try to access it by doing the following:
OnDemand is deprecated. If you want the job launched on-demand, you can define a Sockets dictionary or a MachServices dictionary. Though since you're dealing with MySQL, I'm guessing you want the former. To see an example of a job that's launched on-demand when there is a connection to a socket, check out the SampleD example and BetterAuthorizationSample.
Is there a manual which clearly describes these key/value pairs? I guess I'm interested in the key/value pair, OnDemand, and when/how it works.
launchd.plist(5)
--
Damien Sorresso
BSD Engineering
Apple Inc.
Yes, I read that OnDemand switch to KeepAlive in Mac OS 10.5. Also, the above is the default plist MySQL port which is wrapped in a script called mysql5.wrapper. In any case, I'll take a look at the samples and thanks for the information.
-Conrad