pkgsrc/databases/postgresql95-server/files/pgsql.sh
tnn 76b3088729 Add postgresql95 packages, converted from corresponding postgresql94
packages. postgresql95-upgrade is gone, the pg_upgrade tool is shipped
with postgresql95-client now.

Major enhancements in PostgreSQL 9.5 include:

  Allow INSERTs that would generate constraint conflicts to be turned into
    UPDATEs or ignored
  Add GROUP BY analysis features GROUPING SETS, CUBE and ROLLUP
  Add row-level security control
  Create mechanisms for tracking the progress of replication, including
    methods for identifying the origin of individual changes during logical
    replication
  Add Block Range Indexes (BRIN)
  Substantial performance improvements for sorting
  Substantial performance improvements for multi-CPU machines
2016-02-25 21:37:35 +00:00

130 lines
2.7 KiB
Bash

#!@RCD_SCRIPTS_SHELL@
#
# $NetBSD: pgsql.sh,v 1.1 2016/02/25 21:37:37 tnn Exp $
#
# PostgreSQL database rc.d control script
#
# PROVIDE: pgsql
# REQUIRE: DAEMON
# KEYWORD: shutdown
#
# You will need to set some variables in /etc/rc.conf to start PostgreSQL:
#
# pgsql=YES
#
# Optionally, "pgsql_flags" contains options for the PostgreSQL postmaster, e.g.
# 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.
if [ -f /etc/rc.subr ]; then
. /etc/rc.subr
fi
name="pgsql"
rcvar=${name}
command="@PREFIX@/bin/pg_ctl"
procname="@PREFIX@/bin/postgres"
: ${pgsql_user:=@PGUSER@}
: ${pgsql_group:=@PGGROUP@}
: ${pgsql_home:=@PGHOME@}
extra_commands="initdb reload"
initdb_cmd="pgsql_initdb"
start_precmd="pgsql_precmd"
start_cmd="pgsql_start"
restart_precmd="pgsql_precmd"
restart_cmd="pgsql_restart"
stop_cmd="pgsql_stop"
reload_cmd="pgsql_reload"
if [ -f /etc/rc.subr -a -d /etc/rc.d -a -f /etc/rc.d/DAEMON ]; then
load_rc_config $name
elif [ -f /etc/rc.conf ]; then
. /etc/rc.conf
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}\\\""
fi
pgsql_precmd()
{
ulimit -n 4096
if [ ! -d ${pgsql_home}/data/base ]; then
pgsql_initdb
fi
}
pgsql_initdb()
{
if [ -d ${pgsql_home}/data/base ]; then
@ECHO@ "The PostgreSQL template databases have already been initialized."
@ECHO@ "Skipping database initialization."
else
@ECHO@ "Initializing PostgreSQL databases."
@MKDIR@ -p ${pgsql_home}
@CHOWN@ ${pgsql_user} ${pgsql_home}
@CHGRP@ ${pgsql_group} ${pgsql_home}
@CHMOD@ 0700 ${pgsql_home}
doit="@SU@ -m ${pgsql_user} -c '${command} init ${command_args}'"
eval $doit
fi
}
pgsql_start()
{
@ECHO@ "Starting ${name}."
doit="@SU@ -m ${pgsql_user} -c '${command} start ${command_args}'"
eval $doit
}
pgsql_restart()
{
@ECHO@ "Restarting ${name}."
doit="@SU@ -m ${pgsql_user} -c '${command} restart ${command_args}'"
eval $doit
}
pgsql_stop()
{
@ECHO@ "Stopping ${name}."
doit="@SU@ -m ${pgsql_user} -c '${command} stop ${command_args}'"
eval $doit
}
pgsql_reload()
{
@ECHO@ "Reloading ${name}."
doit="@SU@ -m ${pgsql_user} -c '${command} reload ${command_args}'"
eval $doit
}
if [ -f /etc/rc.subr -a -d /etc/rc.d -a -f /etc/rc.d/DAEMON ]; then
run_rc_command "$1"
else
pidfile="${pgsql_home}/data/postmaster.pid"
case "$1" in
initdb)
eval ${initdb_cmd}
;;
restart)
eval ${restart_precmd}
eval ${restart_cmd}
;;
stop)
if [ -r "${pidfile}" ]; then
eval ${stop_cmd}
fi
;;
reload)
eval ${reload_cmd}
;;
*)
eval ${start_precmd}
eval ${start_cmd}
;;
esac
fi