[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 メーリングリストの案内