slackbuilds/network/pgbouncer/rc.pgbouncer

95 lines
2.0 KiB
Bash

#!/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