サービスを自動起動する

Mac OS Xでのサービスの起動・停止スクリプトを登録してマシンの起動・停止と同期させる方法。
ユーザがインストールしたアプリは、/Library/StartupItems に アプリのディレクトリを掘る

drwxr-xr-x 4 root wheel 136 Nov 26 23:16 MySQL

その下にスクリプト(MySQL)とStartupParameters.plist(XMLではない表記も可能) ファイルを置く。
MySQL

#!/bin/sh
#
# /Library/StartupItems/MySQL/MySQL
#
# A script to automatically start up MySQL on system bootup
# for Mac OS X. This is actually just a wrapper script around
# the standard mysql.server init script, which is included in
# the binary distribution.
#
# (c) 2003 MySQL AB
# Written by Lenz Grimmer <lenz@mysql.com>
#

# Suppress the annoying "$1: unbound variable" error when no option
# was given
if [ -z $1 ] ; then
        echo "Usage: $0 [start|stop|restart] "
        exit 1
fi

# Source the common setup functions for startup scripts
test -r /etc/rc.common || exit 1
. /etc/rc.common

# The path to the mysql.server init script. The official MySQL
# Mac OS X packages are being installed into /usr/local/mysql.
SCRIPT="/usr/local/mysql5/share/mysql/mysql.server"

StartService ()
{
        if [ "${MYSQLCOM:=-NO-}" = "-YES-" ] ; then
                ConsoleMessage "Starting MySQL database server"
                $SCRIPT start > /dev/null 2>&1
        fi
}

StopService ()
{
        ConsoleMessage "Stopping MySQL database server"
        $SCRIPT stop > /dev/null 2>&1
}

RestartService ()
{
        ConsoleMessage "Restarting MySQL database server"
        $SCRIPT restart > /dev/null 2>&1
}

if test -x $SCRIPT ; then
        RunService "$1"
else
        ConsoleMessage "Could not find MySQL startup script!"
fi

StartupParameters.plist

<?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>Description</key>
        <string>MySQL 5.0.26-max</string>
        <key>OrderPreference</key>
        <string>None</string>
        <key>Provides</key>
        <array>
                <string>MySQL</string>
        </array>
        <key>Uses</key>
        <array>
                <string>Network</string>
                <string>Resolver</string>
        </array>
        </dict>
</plist>