MacでPostgresqlを自動的に起動させる方法を紹介します。
OS X 10.6ではそれ以前のOSでの起動方法がサポートされなくなっているので注意が必要です。
従来のOS Xではライブラリ/StartupItemsにplistファイル等を配置することで実現されていましたが、
10.6では配置場所およびファイルへの記載内容が変更されています。
ここでは、OS X 10.6を起動したときにPostgresが自動的に起動する方法について説明します。
2010/12/05 OnDemandについて追記。Postgresのバージョンについて追記。参照元URLを追加
intel Macmini Late2009 Mac OS X 10.6.2
PostgreSQL 8.4.1(PostgreSQL9からはXML形式のplistが付属しているので準備不要)
readline-6.0 (Postgreに必要なライブラリ)
手順は簡単です。スタートアップ用の設定ファイル(plist)を作成し、 所定のフォルダに移動させるだけです。
mac起動時に自動的にデーモンをスタートさせる設定ファイルpostgres.plistを作ります。
作成済みファイルをこのページに添付しています。必要に応じてお使いください。
<?xml version="1.0" encoding="UTF-8"?> <plist version="1.0"> <dict> <key>Label</key> <string>postgres</string> <key>UserName</key> <string>_postgres</string> <key>GroupName</key> <string>_postgres</string> <key>WorkingDirectory</key> <string>/usr/local/pgsql</string> <key>ProgramArguments</key> <array> <string>/usr/local/pgsql/bin/postgres</string> <string>-i</string> <string>-D</string> <string>/usr/local/pgsql/data</string> </array> <key>KeepAlive</key> <dict> <key>PathState</key> <dict> <key>/usr/local/pgsql/data/postmaster.pid</key> <false/> </dict> </dict> <key>OnDemand</key> <false/> <key>RunAtLoad</key> <true/> <key>ServiceDescription</key> <string>PostgreSQL Server</string> </dict> </plist>
注意
Postgresのソースに付属しているOS X用のスクリプトは旧OS X用なので、10.6では動きません。(PostgreSQL9以降は対応しているようです。)
また、他のホームページに間違ったplistが掲載されている事があるので、要注意です。
よくある例としては、<key>OnDemand</key><true/>を入れてしまう事です。
これを書いてしまうと、OS X起動時にPostgresが起動しますが、
その後も10秒間隔で起動しようとして、無駄なエラーログが溜まっていきます。OnDemand:trueはイベント発生ごとに実行する事を示すので、Postgreのようにシステムに常駐させるDaemonプロセスではfalseにすべきです。
Postgreがダウンしても絶対にサービスを中断させたくないためには有効な方法ですが、
通常の用途であればOnDemandは使用しなくてよいと思われます。
新たなスタートアップスクリプトの置き場所であるLaunchDaemonsディレクトリは、 /Libraryと/System/Libraryの2箇所あり、どちらに配置しても動作します。 が、システム管理者が変更を加えるのは/Libraryを推奨されています。
postgres.plistを所定のフォルダに移動させます。
sudo mv ~/Desktop/postgres.plist /Library/LaunchDaemons/ sudo chmod 644 /Library/LaunchDaemons/postgres.plist sudo chown root:wheel /Library/LaunchDaemons/postgres.plist
第1回 initを置き換えるlaunchd【前編】 (3/3)ITmediaエンタープライズ
maruko2 Note. LaunchDaemons (launchctl, launchd.plist) の使い方
Apple Develop Center Apple
Upgrading postgres on Snow Leopard (Mac OS X 10.6)flow
Entropy.ch Discussion Forumsスタートアップファイルについて
コメントはありません。 コメント/Snow Leopard対応版postgres.plist?