You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

82 lines
1.8 KiB

#!/bin/bash
if [ -f /etc/default/bigcouch ]; then
. /etc/default/bigcouch
fi
if [ -f /etc/sysconfig/bigcouch ]; then
. /etc/sysconfig/bigcouch
fi
RETVAL=0
USER=${BIGCOUCH_USER:-bigcouch}
BIN_FILE=${BIGCOUCH_BIN:-/opt/bigcouch/bin/bigcouch}
export HOME=${BIGCOUCH_HOME:-/srv}
[ -f ${BIN_FILE} ] || exit 1
# Detect core count
CORES=`grep -E "^processor" /proc/cpuinfo |wc -l`
if [ "${CORES}" = "1" ]; then
BEAM=beam
else
BEAM=beam.smp
fi
start() {
mkdir -p ${HOME}
chown -R ${USER} ${HOME}
mkdir -p /var/log/bigcouch
chown -R ${USER} /var/log/bigcouch
cd ${HOME}
if [ "$(whoami)" == "${USER}" ]; then
exec ${BIN_FILE}
else
exec su -s /bin/bash -c "${BIN_FILE}" ${USER}
fi
RETVAL=$?
}
stop() {
for i in `pidof ${BEAM}`; do
if cat /proc/$i/cmdline | grep -Eq "name[^\-]+bigcouch"; then
kill $i
RETVAL=$?
fi
done
}
status() {
RETVAL=1
for i in `pidof ${BEAM}`; do
if cat /proc/$i/cmdline | grep -Eq "name[^\-]+bigcouch"; then
echo "bigcouch (pid $i) is running..."
if which curl &>/dev/null; then
curl localhost:5984/_membership
fi
RETVAL=0
fi
done
if [ ${RETVAL} -eq 1 ]; then
echo "bigcouch is not running!"
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
*)
echo $"Usage: $0 (start|stop|status)"
RETVAL=1
esac
exit ${RETVAL}