February 01, 2008MacOSX(10.5) launchdMac miniでサーバをしようと内部を分解したりしていましたが、最近は様々なサーバ系ソフトのインストールに追われています。世の中便利なパッケージがあるようですが、やはりトラブルの際には色々とわかっていたほうがよいと思うので、『漢は黙ってソースからインストール』(笑)を選択しています。現在のところ、プロキシ(squid-cache)とデータベース(PostgreSQL)のインストールが完了しました。その過程で、MacOSXの起動時の挙動がかなり変更されていてサービスを自動起動するのに戸惑ったので、そのことを記事にしたいと思います。 長くなりそうなので、メインページから来られた方は続きをどうぞ。 現時点でこのサイトを提供しているサーバのG3 Macでは、MacOSX 10.3(Panther)がOSとして稼働しています。10.3ではサーバ系のサービスを自動起動する際はSystemStarterというサービスに依存しており、/System/Library/StartupItems等の中にソフト毎にディレクトリを掘って、起動スクリプトや実行順番の設定(*.plistというファイル)などを入れておく、という作法がありました。場合によっては/etc/hostconfigという、どのサービスを起動するかしないかが書かれたファイルも編集する必要がありました。SystemStarterはそれなりによくできていて、自動起動以外にもSystemStarter [start|stop|restart] (サービス)などとすると、対応するサービスの起動スクリプトが呼び出されて、記述したとおりのコマンドが実行されていました。 新しいMac miniでは10.5(Leopard)が稼働しています。Mac miniを購入したままの状態だと10.4(Tiger)が入っているようですが、10.5のDVDディスクが同梱されていたので、早速開封直後に10.5に入れ替えました。 /System/Library/LuanchDaemons/org.squid-cache.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>Label</key> <string>org.squid-cache</string> <key>Program</key> <string>/usr/local/squid/sbin/squid</string> <key>OnDemand</key> <true/> <key>RunAtLoad</key> <true/> </dict> </plist> /System/Library/LuanchDaemons/org.postgresql.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>GroupName</key> <string>postgres</string> <key>Label</key> <string>PostgreSQL</string> <key>ProgramArguments</key> <array> <string>/usr/local/pgsql/bin/postgres</string> <string>-D</string> <string>/usr/local/pgsql/data</string> </array> <key>OnDemand</key> <true/> <key>RunAtLoad</key> <true/> <key>StandardErrorPath</key> <string>/usr/local/pgsql/log/logfile.err</string> <key>StandardOutPath</key> <string>/usr/local/pgsql/log/logfile.log</string> <key>UserName</key> <string>(postgresql専用のユーザ)</string> </dict> </plist> とりあえず上記のスクリプトでsquid、postgrsqlともに自動起動、動作をしているようです。不思議なのがSystemStarterにはあった停止時、再起動時の挙動の指定方法について、man 5 launchd.plistでは書かれていないことが気になっています。 10.3から10.5にOSを変えてみると、launchd以外にもユーザの管理方法が変更(NetInfoが廃止)など大きな変更があるようで、軽く浦島太郎状態なのですが、今後も負けずに10.5を探訪していこうと思います。 コメント
コメントする
|
スポンサード リンク
|