tech-pkg archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
rc.d/pgsql script
I have never had to use the pgsql_flags variable in /etc/rc.conf until
recently and am now running into several problems.
- initdb takes different arguments than postgres, whereas the
rc.d/pgsql script uses the contents of pgsql_flags for both. This
means that some options, e.g., setting ports with the -p option, will
not work when passed to initdb. It seems that there should be
separate *_flags variables for the two programs.
- The number of backslashes used to quote the -o option appears
incorrect. As a result, pg_ctl complains while parsing the command
line.
I believe that the patch below fixes both of these issues. At least, I
have been able to run the script successfully when the following is set:
pgsql_flags="-p 5433"
This same setup fails with the script shipped with pkgsrc. Before I
commit the patch below I would appreciate someone looking at this to
confirm my thoughts.
Thanks a lot.
Cheers,
Brook
--- /etc/rc.d/pgsql.orig 2012-02-16 03:10:54.000000000 +0000
+++ /etc/rc.d/pgsql 2012-02-16 03:10:54.000000000 +0000
@@ -12,11 +12,15 @@
#
# pgsql=YES
#
-# Optionally, "pgsql_flags" contains options for the PostgreSQL postmaster,
e.g.
+# Options for the PostgreSQL database server:
+# common options:
+# pgsql_home="/path/to/home" # path to pgsql database directory
+# options specific to postgres(1):
# pgsql_flags="-i" # allows TCP/IP connections
# pgsql_flags="-i -l" # enables SSL connections
-# pgsql_home="/path/to/home" # path to pgsql database directory
-# See postmaster(1) for possible options.
+# options specific to initdb(1):
+# pgsql_initdb_flags="-E encoding" # set the default encoding
+# See postgres(1) and initdb(1) for other possible options.
if [ -f /etc/rc.subr ]; then
. /etc/rc.subr
@@ -45,9 +49,13 @@
. /etc/rc.conf
fi
+initdb_args="-s -D ${pgsql_home}/data"
+if [ -n "${pgsql_initdb_flags}" ]; then
+ initdb_args="${initdb_args} -o \"${pgsql_initdb_flags}\""
+fi
command_args="-w -s -D ${pgsql_home}/data -m fast -l ${pgsql_home}/errlog"
if [ -n "${pgsql_flags}" ]; then
- command_args="${command_args} -o \\\"${pgsql_flags}\\\""
+ command_args="${command_args} -o \"${pgsql_flags}\""
fi
pgsql_precmd()
@@ -69,7 +77,7 @@
/usr/sbin/chown ${pgsql_user} ${pgsql_home}
/usr/bin/chgrp ${pgsql_group} ${pgsql_home}
/bin/chmod 0700 ${pgsql_home}
- doit="/usr/bin/su -m ${pgsql_user} -c '${command} init
${command_args}'"
+ doit="/usr/bin/su -m ${pgsql_user} -c '${command} init
${initdb_args}'"
eval $doit
fi
}
Home |
Main Index |
Thread Index |
Old Index