summaryrefslogtreecommitdiff
path: root/network/pgbouncer/rc.pgbouncer
diff options
context:
space:
mode:
Diffstat (limited to 'network/pgbouncer/rc.pgbouncer')
-rw-r--r--network/pgbouncer/rc.pgbouncer94
1 files changed, 94 insertions, 0 deletions
diff --git a/network/pgbouncer/rc.pgbouncer b/network/pgbouncer/rc.pgbouncer
new file mode 100644
index 0000000000..d547e42e80
--- /dev/null
+++ b/network/pgbouncer/rc.pgbouncer
@@ -0,0 +1,94 @@
+#!/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