[PR]

[PR]


#contents
*はじめに [#xa70d34b]
MacでPostgresqlを自動的に起動させる方法を紹介します。&br;
OS X 10.6ではそれ以前のOSでの起動方法がサポートされなくなっているので注意が必要です。&br;
従来のOS Xではライブラリ/StartupItemsにplistファイル等を配置することで実現されていましたが、&br;
10.6では配置場所およびファイルへの記載内容が変更されています。&br;
ここでは、OS X 10.6を起動したときにPostgresが自動的に起動する方法について説明します。&br;

***編集履歴 [#j16c8cc1]
2010/12/05 OnDemandについて追記。Postgresのバージョンについて追記。参照元URLを追加

***環境 [#x7200ecb]
intel Macmini Late2009 Mac OS X 10.6.2&br;
PostgreSQL 8.4.1(PostgreSQL9からはXML形式のplistが付属しているので準備不要)&br;
readline-6.0 (Postgreに必要なライブラリ)
*手順 [#w5d338e8]
手順は簡単です。スタートアップ用の設定ファイル(plist)を作成し、
所定のフォルダに移動させるだけです。

*plistファイルの作成 [#e82fa6a6]
mac起動時に自動的にデーモンをスタートさせる設定ファイルpostgres.plistを作ります。&br;
作成済みファイルをこのページに添付しています。必要に応じてお使いください。
 <?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>
注意&br;
Postgresのソースに付属しているOS X用のスクリプトは旧OS X用なので、10.6では動きません。(PostgreSQL9以降は対応しているようです。)&br;
また、他のホームページに間違ったplistが掲載されている事があるので、要注意です。&br;
よくある例としては、<key>OnDemand</key><true/>を入れてしまう事です。&br;
これを書いてしまうと、OS X起動時にPostgresが起動しますが、&br;
その後も10秒間隔で起動しようとして、無駄なエラーログが溜まっていきます。OnDemand:trueはイベント発生ごとに実行する事を示すので、Postgreのようにシステムに常駐させるDaemonプロセスではfalseにすべきです。&br;
%%Postgreがダウンしても絶対にサービスを中断させたくないためには有効な方法ですが、&br;%%
%%通常の用途であればOnDemandは使用しなくてよいと思われます。%%
*plistファイルの移動 [#u57a4581]
  新たなスタートアップスクリプトの置き場所である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

*参照元URL [#u201d2c6]
[[第1回 initを置き換えるlaunchd【前編】 (3/3)>http://www.itmedia.co.jp/enterprise/articles/0704/26/news009_3.html]]ITmediaエンタープライズ&br;
[[maruko2 Note.>http://www.maruko2.com/mw/]] LaunchDaemons (launchctl, launchd.plist) の使い方&br;
[[Apple Develop Center>http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man5/launchd.plist.5.html]] Apple&br;
[[Upgrading postgres on Snow Leopard (Mac OS X 10.6)>http://eric.harris-braun.com/blog/2009/11/10/id-149]]flow&br;
[[Entropy.ch Discussion Forums>http://www.entropy.ch/phpbb2/viewtopic.php?t=2291]]スタートアップファイルについて

*コメント欄 [#pa85fca7]
#pcomment(,10,above)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS