いままで逃避行動に走って放置していた、PostgreSQLサーバの自動起動に関して、どうにかすることにした。私の見立てでは、logfileが問題なんかじゃないかと。さて、スタートアップアイテムを見ると、
su - postgres -c '/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data -l /usr/local/pgsql/logfile -o -i'
となっているので、/usr/local/pgsql/logfileを探しに行くと・・・無いじゃん。どこにlogfileがあるのかと思ったらpostgresユーザのホームディレクトリにあるじゃん。でも、内容が古い。どうやら、一番はじめの頃に手動で起動させたときの名残らしい。というわけで、/usr/local/pgsql/logfileを新しく作って、ファイルの所有権をpostgresにして、再起動・・・。うまくいきました。なーんだ。なかったら勝手に作ってくれるワケじゃないのね。
追加(050307):何で勝手に作ってくれなかったのかの考察。/usr/local/pgsqlディレクトリのユーザがルートになっているからなのかもしれない。もしかして、このディレクトリの下は全部ユーザをpostgresにしておいた方がいいのだろうか?と思いつつも放置。
su - postgres -c '/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data -l /usr/local/pgsql/logfile -o -i'
となっているので、/usr/local/pgsql/logfileを探しに行くと・・・無いじゃん。どこにlogfileがあるのかと思ったらpostgresユーザのホームディレクトリにあるじゃん。でも、内容が古い。どうやら、一番はじめの頃に手動で起動させたときの名残らしい。というわけで、/usr/local/pgsql/logfileを新しく作って、ファイルの所有権をpostgresにして、再起動・・・。うまくいきました。なーんだ。なかったら勝手に作ってくれるワケじゃないのね。
追加(050307):何で勝手に作ってくれなかったのかの考察。/usr/local/pgsqlディレクトリのユーザがルートになっているからなのかもしれない。もしかして、このディレクトリの下は全部ユーザをpostgresにしておいた方がいいのだろうか?と思いつつも放置。