#!/bin/bash if [ -f /etc/default/bigcouch ]; then . /etc/default/bigcouch fi if [ -f /etc/sysconfig/bigcouch ]; then 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}