summaryrefslogtreecommitdiffstats
path: root/postgresql.init.in
Commit message (Collapse)AuthorAgeFilesLines
* Move the repo to github.HEADmasterPavel Raiskup2016-07-221-287/+0
|
* initscript: don't block system start-up by defaultPavel Raiskup2015-03-221-15/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* init: add PGSCLS env variablePavel Raiskup2015-03-191-2/+4
| | | | | | | * postgresql-ctl.in: Respect PGSCLS env variable. * postgresql.init.in: Export PGSCLS variable possibly sourced from sysconfig configuration file. * NEWS: Document.
* init: add PGSTARTTIMEOUT config env variablePavel Raiskup2015-03-191-4/+14
| | | | | | | | | * 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.
* initscript: always use run_cmd_as_dbadminPavel Raiskup2015-03-191-3/+2
| | | | | | | Per hhorak's review. * postgresql.init.in (SU_POSTGRES): Remove unused variable. (reload): Use run_cmd_as_dbadmin.
* sysvinit: initscript & postgresql-setup fixesPavel Raiskup2015-03-181-2/+2
| | | | | | | | | | * 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.
* bunch of rhel{6,7} & scl fixesPavel Raiskup2015-03-181-2/+2
| | | | | | | | | | | | * 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-ctl: fix SCLs & SELinuxPavel Raiskup2015-03-181-3/+3
| | | | | | | * 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.
* sysvinit: transform for SCL & RHEL6 usagePavel Raiskup2015-03-171-177/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* postgresql.init: use $README_DIST alsoPavel Raiskup2015-02-101-3/+5
| | | | | | | | 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.
* configury: use one single variable SU_POSTGRESPavel Raiskup2015-02-101-13/+6
| | | | | | | | | | | | 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.
* sysvinit: generate init file when neededPavel Raiskup2014-10-021-0/+337
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.