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.
 
 

97 lines
1.4 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}
# Detect core count
CORES=`grep -E "^processor" /proc/cpuinfo |wc -l`
if [ "${CORES}" = "1" ]; then
BEAM=beam
else
BEAM=beam.smp
fi
prepare() {
mkdir -p ${HOME}
chown -R ${USER} ${HOME}
mkdir -p /var/log/bigcouch
chown -R ${USER} /var/log/bigcouch
}
start() {
cd ${HOME}
set -- ${BIN_FILE} "$@"
if [ "$(whoami)" == "${USER}" ]; then
exec "$@"
else
exec sudo -u ${USER} "$@"
fi
RETVAL=$?
if [ ${RETVAL} -ne 0 ]; then
echo "Failed to start BigCouch!"
RETVAL=1
fi
}
stop() {
for i in `pidof ${BEAM}`; do
if cat /proc/$i/cmdline | grep -Eq "name[^\-]+bigcouch"; then
kill $i
RETVAL=$?
fi
done
}
restart() {
stop
start
}
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
prepare)
prpeare
;;
start)
start
;;
stop)
stop
;;
status)
status
;;
*)
echo $"Usage: $0 (prpeare|start|stop|restart|status)"
RETVAL=1
esac
exit ${RETVAL}