Lighttpd自動起動(MacOSX)
start up Shell
MacOSXではLinuxのrcに相当するSystemStarterの機能を使ってlighttpdを自動起動します。ユーザインストールのサービスに関しては/Library/StartupItems/application_nameのディレクトリを作成しその配下に設定を記述します。ディレクトリ下にはapplication_nameと同じ名前の起動ファイル(通常は対象サービスを起動するシェル)とStartupParameters.plistという名前のファイルが必要です。(オプションでResources/言語名.lpoj/Localizable.settingsというローカライズ用のファイルを設置できます。)
まず、起動用のシェルを作成します。作法に則り/Library/startupItems/Lighttpd/Lighttpdとして作成します。
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
CONFIG="/etc/lighttpd/lighttpd.conf"
SCRIPT="/usr/local/sbin/lighttpd"
StartService ()
{
if [ "${LIGHTTPD:=-NO-}" = "-YES-" ] ; then
ConsoleMessage "Starting Lighttpd Server"
$SCRIPT -f $CONFIG
fi
}
StopService ()
{
ConsoleMessage "Killing Lighttpd Server"
kill `cat /var/run/lighttpd.pid`
}
RestartService ()
{
ConsoleMessage "Restarting Lighttpd server"
/Library/StartupItems/Lighttpd/Lighttpd stop
/Library/StartupItems/Lighttpd/Lighttpd start
}
if test -x $SCRIPT ; then
RunService "$1"
else
ConsoleMessage "Could not find lighttpd startup script!"
fi
StartupParameters.plist
続いて起動用パラメータリスト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>Lighttpd 1.4.11</string>
<key>OrderPreference</key>
<string>None</string>
<key>Provides</key>
<array>
<string>Lighttpd</string>
</array>
<key>Uses</key>
<array>
<string>Network</string>
<string>Resolver</string>
</array>
</dict></plist>
ここでプロパティの意味は次のようになります。起動しようとするサービスが他のサービスに依存する場合の起動順などを指定します。
- Description 説明書き
- OrderPreference 複数のプロセスの起動準備が整った時の起動順 [First|Early|None|Late|Last]
- Provides 提供するサービスの名称(配列)
- Uses 使用するサービスの名称(配列)
Usesに対してRequiresというプロパティもあります。Usesは使用するサービスが起動していなくても当該サービスを起動しますがRequiresを指定した場合は起動されません。
host config
ところで、/Library/StartupItems/~はシステムによって必ず実行されます。一時的に起動したくない場合などは/etc/hostconfigファイルに任意の変数名を記述しその値をスクリプト内で判定します。今回作成したスクリプトでは次の部分になります。
if [ "${LIGHTTPD:=-NO-}" = "-YES-" ] ; then
この部分は/etc/hostconfigに次の行を追加することで生きてきます。
LIGHTHTTPD=-YES-(-NO-)
[追記] lighttpd.confにserver.pid-fileの設定を忘れずに。デフォルトオフになっているので/Library/StartupItems/Lighttpd/Lighttpd stopで困ったことになります。










最近のコメント
1週 6 days ago
2 weeks 6 days ago
3 weeks 23 hours ago
7 weeks 20 hours ago
7 weeks 5 days ago
8 weeks 4 days ago
8 weeks 4 days ago
11 weeks 4 days ago
11 weeks 4 days ago
17 weeks 5 days ago