| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit should resolve complaints against pg_ctl -w usage from
initscript (see rhbz#800534 for more info).
The problem is that pg_ctl -w can block whole system startup too
long - until the server is fully ready to accept connections. The
commit 8c7b2cd5f6d9efb59568382cd8b6e88d9be517bb thus invented
basically bad approach for initscript.
Now, the "-w" option is used only if the PGSTARTWAIT is explicitly
set to 1 by administrator. In this case, the PGSTARTTIMEOUT
numeric value (in seconds) is respected (or limit 30 seconds is
set by default).
Otherwise, if PGSTARTWAIT is unset (default), initscript keeps
checking only for the pidfile existence (at most PGSTARTTIMEOUT
seconds). The hardwired 'sleep 2' command (activated before
8c7b2cd5f6 commit) is still not used - regular/default system
startup should be a bit faster than before.
* postgresql.init.in (start): Fix handling of PGDATA, PGPORT,
PGOPTS and PGSCLS - to respect special quoting characters inside,
we should escape the strings before passing those to command
evaluation. Use printf %q as we use bash and we don't care too
much about portability. Also, don't call postgresql-ctl with -w
option if PGSTARTWAIT is empty or undefined. Implement pidfile
polling for the cases PGSTARTWAIT is unset. Return success faster
if server is already running.
($PGSTARTWAIT): New env variable.
* postgresql-ctl.in: Don't parse $PGPORT into -o option as it is
not needed. Unset PGPORT if the variable is empty - postgres
server would fail with empty value.
* configure.ac: Bump version to 3.3.
* NEWS: Document bugfixes.
|
|
|
|
|
|
|
| |
* postgresql-ctl.in: Respect PGSCLS env variable.
* postgresql.init.in: Export PGSCLS variable possibly sourced from
sysconfig configuration file.
* NEWS: Document.
|
|
|
|
|
|
|
|
|
| |
* postgresql.init.in (PGSTARTTIMEOUT): New variable.
(start): Use postgresql-ctl and respect PGSTARTTIMEOUT.
* postgresql.service.in: Better document the timeouts.
(PGSTARTTIMEOUT): New env variable.
(ExecStart): Respect PGSTARTTIMEOUT.
* NEWS: Document.
|
|
|
|
|
|
|
| |
Per hhorak's review.
* postgresql.init.in (SU_POSTGRES): Remove unused variable.
(reload): Use run_cmd_as_dbadmin.
|
|
|
|
|
|
|
|
|
|
| |
* postgresql-setup.in($USAGE_STRING): Don't output sysvinit
not-relevant options. Generalize the help a bit to match
sysvinit. Throw a better warning if user runs 'service initdb
postgresql@blah', and, the --port was not passed. In this case,
postgresql.conf can't be used.
* postgresql.init.in (initdb, upgrade): Add --unit option to
postgresql-setup call.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* postgresql.init.in (initdb, upgrade): Use full path to
postgresql-setup, this is mostly for proper documentation purposes
in case of failure.
* legacy-sysv-script.in: Pass --unit before actual unit name.
* postgresql-ctl.in: Handle better the $port option passed to
pg_ctl.
* postgresql-setup.in: Use full path to postgresql-setup, mostly
for documentation purposes.
* README: Add elinks to BuildRequires.
|
|
|
|
|
|
|
| |
* postgresql.init.in: Use 'postgres' binary instead of
'postmaster', because it has proper selinux context.
* postgresql.service.in: Use postgresql-ctl everywhere, to make
sure that correct selinux context is used even with SCL.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is mostly about simplification of intiscript and postgresql-setup
script reuse. Still WIP, however (some options are not applicable for
sysvinit system).
* share/postgresql-setup/library.sh.in (parse_upgrade_setup): Parse new
variable "pghost_override".
(run_cmd_as_dbadmin): New wrapper function to run something under
"postgres" user. Cut from postgresql-setup.
* postgresql-setup.in: Optionally source software collections. Call new
check_daemon_reload instead of in-place checking.
(upgrade): Use new library function run_cmd_as_dbadmin. Add new hack
for $PGHOST overriding via $pghost_override. Add more verbose output to
make clear what tool failed.
(check_daemon_reload): New function to make the systemd daemon reload
conditionally on one dedicated place.
(handle_envfile): New function to abstract environment file parsing,
works both for systemd & sysvinit env-files.
(handle_service_envfiles): Use handle_envfile instead of in-place
parsing.
(service_configuration): For sysvinit supported configuration, we
support only one env file per service - take this into account and don't
try to detect many from systemctl output.
* postgresql.init.in: Switch to bash script. Parametrize metadata by
configure results. Source software collections when needed. Source
project library. Don't set PGDATA if admin uses non-default service
naem. Do not define PGPORT as PGPORT should be defined in
postgresql.conf. Allow passing parameters into initdb/upgrade targets.
($PREVMAJORVERSION, $PREVPGENGINE): Remove unused variables.
($PGENGINE): This is @bindir@ equivalent.
($PGLOG): Spell it so it will not clash with system default PostgreSQL
installation.
($pidfile): Use $NAME instead of $PID to distinguish multiple postmaster
scenarios (mainly because we do not know the PGPORT yet).
(start): Drop the checking logic and use postgresql-check-db-dir
instead. Reuse run_cmd_as_dbadmin instead of $SU_POSTGRES.
(stop): Use run_cmd_as_dbadmin instead of $SU_POSTGRES.
(reload): Just coding style fix.
(perform_initdb): Drop unused function, done in postgresql-setup.
(__single_comand): Mostly postgresql-setup wrapper with success/failure
sugar around the call itself.
(initdb): Substitute the function body with postgresql-setup call.
(upgrade): Likewise.
* postgresql-check-db-dir.in: Fix the hint for admin about where the
service should be initialized. Do not warn about systemd-only
unsupported configuration. Add @bindir@ into "you need --initdb" hint.
Re-style the warning a bit.
* etc/postgresql-setup/upgrade/postgresql.conf: Mention new
configuration option pghost_override.
* configure.ac (initscriptsconfdir): New configuration directory.
(PGMAJORVERSION): Use sed and regexp for MAJOR version mining. It
failed for micro versions of length >= 2.
(SCL_SOURCE): Define to be empty by default.
* README: Document what's needed to bootstrap from git source. WIP.
* Makefile.am (initscripts_DATA): Use noinst_DATA. Firstly, having
initscripts_DATA installs only non-executable files. So we needed
something with _SCRIPTS primary. But initscripts_SCRIPTS would face the
automake's limitation that it must be "static" list of files. So make
the installation of initscript (of dynamically generated name) via
automake's install/uninstall.
($(initscript)): Use $(INSTANTIATE_SCRIPT) instead of $(INSTANTIATE).
(install-data-hook): Call 'systemctl daemon-reload' only for
non-sysvinit systems.
* .gitignore: Ignore 'initscript' filename.
|
|
|
|
|
|
|
|
| |
Issue detected by './configure --with-sysvinit && make check'.
* postgresql.init.in ($PGDOCDIR): Wipe it out.
($README_DIST): Use on appropriate places.
* Makefile.am: Add TODO relevant to this commit.
|
|
|
|
|
|
|
|
|
|
|
|
| |
We use 'su' only for 'postgres' user purposes. So have one,
configure-time-proven command. Also, in the previous commit I
forgot to fix sysvinit file.
* configure.ac (SU_POSTGRES): New variable.
* postgresql-setup.in ($SU_POSTGRES): Use detected @SU_POSTGRES@.
($SU, $SU_L_POSTGRES): Avoid usage of those.
* postgresql.init.in: Likewise.
* .gitignore: Remove typoed ignore.
|
|
From now, if ./configure --with-sysvinit is done, we install init
script and do not install systemd files. Original patch written
by Jozef MlĂch (jmlich@redhat.com).
* Makefile.am (initscriptsdir, nodist_initscripts_DATA): New
variables. New postgresql.init target.
* configure.ac: Add --with-sysvinit option.
* postgresql.init.in: New sysvinit template.
* .gitignore: Mention postgresql.init.
* NEWS: Document.
|