プロパティリストの作成

Lighttpdは他サービスと特に依存関係はありませんので特にプロパティリストを作成する必要性はないように思いますが一応作法なので作成します。記述はXML形式となります。DocTypeはApplePlist形式なので最初の部分はどれも固定。外枠は、<plist><dict>で囲みます。

<?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">

プロパティには次のものがあります。このうち、注意が必要なのはRequires/OrderPreferenceですが、Lighttpdの場合特に他プロセスとの依存関係はありませんから指定しなくても大丈夫です。

Description
説明文
Provides
サービスの名称
Requires
このサービスの起動以前に起動しているべき他サービス
OrderPreference
プロセスの起動順序
Uses
このサービスが使用する他サービスの名称

Requierで指定されたサービスが稼働していない場合はこのサービス起動されないのに対し、Usesではここで指定したサービスが仮に起動していなくとも当該サービスは起動されるという点で似ているようですが決定的な違いがあります。

<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>

権限の付与

作成したディレクトリおよびファイルのオーナーおよびグループはroot:wheelにします。パーミッションは755で、最終的には以下のようになります。

ls -al /Library/StartupItems/Lighttpd
total 16
drwxr-xr-x   4 root  wheel  136 Aug 27 06:09 .
drwxr-xr-x   4 root  wheel  136 Aug 27 06:28 ..
-rwxr-xr-x   1 root  wheel  779 Aug 27 06:04 Lighttpd
-rw-r--r--   1 root  wheel  548 Aug 27 06:05 StartupParameters.plist

マニュアル起動

ここまでで再起動すればLighttpdは起動するはずですが(Apacheを起動している場合はApacheは止めておく必要があります。)デバッグ時などマシンをリブートせずLighttpdを再起動する場合はターミナルから次のコマンドで起動・終了・再起動ができます。

sudo /sbin/SystemStarter [start|stop|restart] Lighttpd

今回例示したシェルでは、Lighttpdの終了を、kill `cat /var/run/lighttpd.pid`としています。Lighttpdは自動でpidファイルを作成しませんからあらかじめLighttpd.confの中でpidファイルの指定をしておく必要があります。

server.pid-file  = "/var/run/lighttpd.pid"