From f0c8357be0d34bf97a44d1610ba0fc13cec06ee4 Mon Sep 17 00:00:00 2001 From: MasaoFujii Date: Fri, 9 Mar 2012 16:50:59 +0900 Subject: [PATCH] Make pgshutdown.sh wait for servers to shut down. --- pgshutdown.sh | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/pgshutdown.sh b/pgshutdown.sh index b4a57d2..72376ab 100755 --- a/pgshutdown.sh +++ b/pgshutdown.sh @@ -6,6 +6,7 @@ MODE="f" SIGNAL="INT" TARGETS="$PGDATA" STOPALL=false +MAXWAIT=6 usage () { @@ -45,10 +46,26 @@ while [ $# -gt 0 ]; do shift done +pm_pids () +{ + pgps.sh -1 -o ppid,pid | awk '$1 == 1 {print $2}' +} + if [ "$STOPALL" = "true" ]; then - for PMPID in $(pgps.sh -1 -o ppid,pid | awk '$1 == 1 {print $2}'); do + for PMPID in $(pm_pids); do kill -$SIGNAL $PMPID done + + printf "waiting for servers to shut down..." + for i in $(seq 1 $MAXWAIT); do + if [ -z "$(pm_pids)" ]; then + echo " done" + exit 0 + fi + printf "." + sleep 1 + done + echo " failed" exit 0 fi