[pgsql-jp: 41750] pg_ctlの動作の質問

mlus mlus @ 39596.com
2014年 12月 2日 (火) 03:14:11 JST


ci5kym と申します。

linuxでのpostgres 9.1の起動方法について質問させて下さい。

postgresサーバーの起動は、起動パラメータで”config_file”を指定した場合、
そのファイルに以下の3つが指定されていれば、データクラスタの位置をパラメータで
指定しなくても良いと理解しています。

/etc/dbconf/postgresql.confを作成し、

data_directory=/usr/local/pgsql/data
hba_file=/etc/dbconf/pg_hba.conf
ident_file=/etc/dbconf/pg_ident.conf

を記述。

# su - postgres
$ /usr/local/pgsql/bin/pg_ctl start -w -s -o ' -c
config_file=/etc/dbconf/postgresql.conf '

した場合、何の問題もなく動作します。

ところが、systemd で /etc/systemd/system/postgresql.service を作成し、
以下のように記述し

PIDFile=/etc/dbconf/postgres.pid
ExecStart=/usr/local/pgsql/bin/pg_ctl start -w -s -o '-c
config_file=/etc/dbconf/postgresql.conf'
....

起動した場合、エラーで起動できない状況に遭遇しました。
エラーの内容は、データクラスタ位置が指定されていないか、PGDATA変数が指定されていない
というもので、-o '-c config_file=/etc/dbconf/postgresql.conf'  の部分が解析されていないまま
起動しているように思えます。

ExecStartを
Environment="PGBASE=/usr/local/pgsql"
ExecStart=/usr/local/pgsql/bin/pg_ctl start -w -D ${PGBASE}/data -s -o
'-c config_file=/etc/dbconf/postgresql.conf'
とした場合は、問題なく起動してくれます。

この現象がpg_ctlの問題なのか、systemdの問題なのか判断できない為、質問させて頂きました。

どなたかお分かりの方がおられましたらご教授お願い致します。


pgsql-jp メーリングリストの案内