Macの起動時にPostgreSQLが自動起動されるように設定する
正確にはMacの起動時ではなく、ログインしたときに起動、ログアウトしたときに終了される設定。
起動、終了スクリプト作成
自分の環境では、postgresは/usr/local/pgsqlにインストールし、管理ユーザーはデフォルト通りpostgresであるため、以下の内容のスクリプトを作成。
起動スクリプト例:/usr/local/bin/LoginHook
#!/bin/sh
sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l /Users/postgres/`date +%Y%m%d`.log start
終了スクリプト例:/usr/local/bin/LogoutHook
#!/bin/sh
sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data stop
スクリプト自動実行設定
ここ(アップルのサイト)が参考になる。
以下のコマンドで、作成したスクリプトがログイン、ログアウト時に実行されるように設定する。
$ sudo defaults write com.apple.loginwindow LoginHook /usr/local/bin/LoginHook
$ sudo defaults write com.apple.loginwindow LogoutHook /usr/local/bin/LogoutHook
以下のコマンドで設定確認できる。
$ sudo defaults read com.apple.loginwindow LoginHook
/usr/local/bin/LoginHook
$ sudo defaults read com.apple.loginwindow LogoutHook
/usr/local/bin/LogoutHook
(2013年1月14日追記)削除は以下のコマンドでできる。
sudo defaults delete com.apple.loginwindow LogoutHook
sudo defaults delete com.apple.loginwindow LoginHook