#!/bin/sh # Start/stop/restart pgbouncer - Lightweight connection pooler for PostgreSQL. # Copyright (c) 2015, Antonio Hernández Blas <hba.nihilismus@gmail.com> # # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE # Version 2, December 2004 # # Copyright (C) 2004 Sam Hocevar <sam@hocevar.net> # # Everyone is permitted to copy and distribute verbatim or modified # copies of this license document, and changing it is allowed as long # as the name is changed. # # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE # TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION # # 0. You just DO WHAT THE FUCK YOU WANT TO. # CONF='/etc/pgbouncer/pgbouncer.ini' CMMD="/usr/bin/pgbouncer -d -q" pgbouncer_start() { CMMD="$CMMD $CONF" if [ -x /usr/bin/pgbouncer ]; then if [ -f $CONF ]; then PIDOF=$(pgrep -f "$CMMD.*$CONF") if [ ! -z "$PIDOF" ]; then echo "Error, pgbouncer is already running." else echo "Starting pgbouncer: $CMMD" $CMMD fi else echo "Error, file $CONF does not exist." fi fi } pgbouncer_stop() { PIDOF=$(pgrep -f "$CMMD.*$CONF") if [ -z "$PIDOF" ]; then echo "Error, pgbouncer is not running." else echo "Stoping pgbouncer: /bin/kill -s SIGINT $PIDOF" /bin/kill -s SIGINT $PIDOF fi } pgbouncer_status() { PIDOF=$(pgrep -f "$CMMD.*$CONF") if [ ! -z "$PIDOF" ]; then echo "pgbouncer is running." else echo "pgbouncer is not running." fi } pgbouncer_online_restart() { PIDOF=$(pgrep -f "$CMMD.*$CONF") if [ ! -z "$PIDOF" ]; then CMMD="$CMMD -R $CONF" echo "Online restarting pgbouncer: $CMMD" $CMMD else echo "Error, pgbouncer is not running." fi } case $1 in start) pgbouncer_start ;; stop) pgbouncer_stop ;; restart) pgbouncer_stop sleep 3 pgbouncer_start ;; online-restart) pgbouncer_online_restart ;; status) pgbouncer_status ;; *) echo "Usage $0 {start|stop|restart|status|online-restart}" exit 1 ;; esac