Files
hackpad/bin/stop.sh
2015-08-14 12:11:45 -07:00

49 lines
983 B
Bash
Executable File

#!/bin/bash
# requires bash 3
TEST_STRING=java
###
# Test if the etherpad instance is alive by checking for
# the process in etherpad/data/etherpad.pid
#
# Use that PID to see if there are any processes running
# and if the command of that process matches $TEST_STRING
#
# If it matches kill the $PID,
# wait and see if the process ended.
#
# Exits 0 on success, 1 on failure
ETHERPADDIR="$(cd "$(dirname "$0")/.."; pwd)"
PID_FILE="${ETHERPADDIR}/etherpad/data/etherpad.pid"
PID=`cat ${PID_FILE}`
RUNNING_CMD="ps -o pid,ruser,ucmd --no-headers -p ${PID}"
function check_if_alive_by_pid {
result=`ps -o pid,ruser,ucmd --no-headers -p ${1}`
if [[ "${result}" =~ "${TEST_STRING}" ]] ; then
return 0
else
return 1
fi
}
i=0
while [ $i -le 10 ] ; do
check_if_alive_by_pid $PID
if [[ $? -eq 0 ]] ; then
kill -9 $PID
sleep 5
else
exit 0
fi
i=$(( $i + 1 ))
done
# Should only get here if we've tried restarting the
# Etherpad process 10 times unsuccessfully
exit 1