Radix cross Linux

The main Radix cross Linux repository contains the build scripts of packages, which have the most complete and common functionality for desktop machines

452 Commits   2 Branches   1 Tag
     5         kx #!/bin/bash
     5         kx 
     5         kx # PostgreSQL startup script for Radix Linux
     5         kx #
     5         kx # $Revision: 6804ca7db709 $
     5         kx # $Date: 2015/03/13 21:57:14 $
     5         kx #
     5         kx # Copyright 2007-2015 Adis Nezirovic <adis_at_linux.org.ba>
     5         kx # All rights reserved.
     5         kx #
     5         kx # Redistribution and use of this script, with or without modification, is
     5         kx # permitted provided that the following conditions are met:
     5         kx #
     5         kx # 1. Redistributions of this script must retain the above copyright
     5         kx #    notice, this list of conditions and the following disclaimer.
     5         kx #
     5         kx #  THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
     5         kx #  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
     5         kx #  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
     5         kx #  EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     5         kx #  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     5         kx #  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     5         kx #  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     5         kx #  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     5         kx #  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
     5         kx #  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     5         kx 
     5         kx # Do not source this script (since it contains exit() calls)
     5         kx #
     5         kx # Since version 9.3 this startup script can run multiple PostgreSQL
     5         kx # versions on different ports and with different data dirs.
     5         kx #
     5         kx # e.g. PG_VERSION=14.1 PG_PORT=6432 /etc/rc.d/rc.@PKGNAME@ start
     5         kx 
     5         kx PG_VERSION=${PG_VERSION:-@PG_VERSION@}
     5         kx PG_PORT=${PG_PORT:-@PG_PORT@}
     5         kx LIBDIRSUFFIX="@LIBDIRSUFFIX@"
     5         kx LOGFILE=/var/log/@PKGNAME@-$PG_VERSION
     5         kx DATADIR=/var/lib/pgsql/$PG_VERSION/data
     5         kx RUNDIR=/var/run/pgsql
     5         kx POSTGRES=/usr/lib${LIBDIRSUFFIX}/@PKGNAME@/$PG_VERSION/bin/postgres
     5         kx PG_CTL=/usr/lib${LIBDIRSUFFIX}/@PKGNAME@/$PG_VERSION/bin/pg_ctl
     5         kx PIDFILE=$DATADIR/postmaster.pid
     5         kx 
     5         kx # oom-killer score
     5         kx #
     5         kx # https://www.postgresql.org/docs/14/kernel-resources.html#LINUX-MEMORY-OVERCOMMIT
     5         kx PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj
     5         kx PG_MASTER_OOM_SCORE_ADJ=-1000
     5         kx PG_CHILD_OOM_SCORE_ADJ=0
     5         kx PG_ENV="PG_OOM_ADJUST_FILE=$PG_OOM_ADJUST_FILE PG_OOM_ADJUST_VALUE=$PG_CHILD_OOM_SCORE_ADJ"
     5         kx 
     5         kx # Return values (according to LSB):
     5         kx # 0 - success
     5         kx # 1 - generic or unspecified error
     5         kx # 2 - invalid or excess argument(s)
     5         kx # 3 - unimplemented feature (e.g. "reload")
     5         kx # 4 - insufficient privilege
     5         kx # 5 - program is not installed
     5         kx # 6 - program is not configured
     5         kx # 7 - program is not running
     5         kx 
     5         kx pg_ctl()
     5         kx {
     5         kx   CMD="$PG_CTL -o '-p $PG_PORT' $@"
     5         kx   su - postgres -c "$CMD"
     5         kx }
     5         kx 
     5         kx if [ ! -f $POSTGRES ]; then
     5         kx   echo "Could not find 'postgres' binary. Maybe PostgreSQL is not installed properly?"
     5         kx   exit 5
     5         kx fi
     5         kx 
     5         kx case "$1" in
     5         kx 
     5         kx   "start")
     5         kx     echo "Starting PostgreSQL"
     5         kx     touch $LOGFILE
     5         kx     chown postgres:wheel $LOGFILE
     5         kx     chmod 0640 $LOGFILE
     5         kx     mkdir -p $RUNDIR
     5         kx     chown -R postgres:postgres $RUNDIR
     5         kx 
     5         kx     if [ ! -e $DATADIR/PG_VERSION ]; then
     5         kx       echo "You should initialize the PostgreSQL database at location $DATADIR"
     5         kx       echo "e.g. su postgres -c \"initdb -D $DATADIR --locale=en_US.UTF-8 -A md5 -W\""
     5         kx       exit 6
     5         kx     fi
     5         kx 
     5         kx     if [ $(pgrep -f $POSTGRES) ]; then
     5         kx 
     5         kx       echo "PostgreSQL daemon already running"
     5         kx       if [ ! -f $PIDFILE ]; then
     5         kx         echo "Warning: Missing pid file $PIDFILE"
     5         kx       fi
     5         kx       exit 1
     5         kx 
     5         kx     else
     5         kx       test -e "$PG_OOM_ADJUST_FILE" && echo "$PG_MASTER_OOM_SCORE_ADJ" > "$PG_OOM_ADJUST_FILE"
     5         kx       pg_ctl start -w -l $LOGFILE -D $DATADIR
     5         kx       exit 0
     5         kx     fi
     5         kx   ;;
     5         kx 
     5         kx   "stop")
     5         kx     echo "Shutting down PostgreSQL..."
     5         kx     pg_ctl stop -l $LOGFILE -D $DATADIR -m smart
     5         kx   ;;
     5         kx 
     5         kx   "force-stop")
     5         kx     # Take care! This will kill _all_ client connections
     5         kx     # and rollback current transactions.
     5         kx     echo "Shutting down PostgreSQL (fast)..."
     5         kx     pg_ctl stop -l $LOGFILE -D $DATADIR -m fast
     5         kx   ;;
     5         kx 
     5         kx   "unclean-stop")
     5         kx     # Take care! This will abort server process itself
     5         kx     # resulting with database recovery on next start.
     5         kx     echo "Shutting down PostgreSQL (immediate)..."
     5         kx     pg_ctl stop -l $LOGFILE -D $DATADIR -m immediate
     5         kx   ;;
     5         kx 
     5         kx   "restart")
     5         kx     echo "Restarting PostgreSQL..."
     5         kx     test -e "$PG_OOM_ADJUST_FILE" && echo "$PG_MASTER_OOM_SCORE_ADJ" > "$PG_OOM_ADJUST_FILE"
     5         kx     pg_ctl restart -l $LOGFILE -D $DATADIR -m smart
     5         kx   ;;
     5         kx 
     5         kx   "force-restart")
     5         kx     # Take care! This will kill _all_ client connections
     5         kx     # and rollback current transactions.
     5         kx     echo "Restarting PostgreSQL (fast)..."
     5         kx     pg_ctl restart -l $LOGFILE -D $DATADIR -m fast
     5         kx   ;;
     5         kx 
     5         kx   "unclean-restart")
     5         kx     # Take care: This will abort server process itself
     5         kx     # resulting with database recovery on start.
     5         kx     echo "Restarting PostgreSQL (immediate)..."
     5         kx     pg_ctl restart -l $LOGFILE -D $DATADIR -m immediate
     5         kx   ;;
     5         kx 
     5         kx   "reload")
     5         kx     echo "Reloading configuration for PostgreSQL..."
     5         kx     pg_ctl reload -l $LOGFILE -D $DATADIR -m smart
     5         kx   ;;
     5         kx 
     5         kx   "status")
     5         kx     if [ $(pgrep -f $POSTGRES) ]; then
     5         kx       echo "PostgreSQL is running"
     5         kx 
     5         kx       if [ ! -e $PIDFILE ]; then
     5         kx         echo "Warning: Missing pid file $PIDFILE"
     5         kx       fi
     5         kx 
     5         kx       exit 0
     5         kx     else
     5         kx       echo "PostgreSQL is stopped"
     5         kx 
     5         kx       if [ -e $PIDFILE ]; then
     5         kx         echo "Detected stale pid file $PIDFILE"
     5         kx       fi
     5         kx 
     5         kx       exit 0
     5         kx     fi
     5         kx   ;;
     5         kx 
     5         kx   *)
     5         kx     # unclean-stop and unclean-restart are not documented on purpose.
     5         kx     echo "Usage: $0 {start|stop|force-stop|status|restart|force-restart|reload}"
     5         kx     exit 1
     5         kx   ;;
     5         kx esac