#!/bin/bash # # BigCouch # # chkconfig: 345 13 87 # description: BigCouch is a dynamo-style distributed database based on Apache CouchDB. # processname: bigcouch # pidfile: /var/run/bigcouch.pid # # Source function library. . /etc/init.d/functions if [ -f /etc/sysconfig/bigcouch ]; then . /etc/sysconfig/bigcouch fi prog="bigcouch" lockfile=${LOCKFILE-/var/lock/subsys/kazoo-bigcouch} user="bigcouch" RETVAL=0 STOP_TIMEOUT=${STOP_TIMEOUT-10} # Check that networking is up. if [ "$NETWORKING" = "no" ]; then exit 0 fi [ -f /opt/bigcouch/bin/${prog} ] || exit 0 # Detect core count CORES=`grep -E "^processor" /proc/cpuinfo |wc -l` if [ "$CORES" = "1" ]; then BEAM=beam else BEAM=beam.smp fi start() { RETVAL=1 echo -n $"Starting ${prog}: " for i in `pidof $BEAM`; do if cat /proc/$i/cmdline | grep -Eq "name[^\-]+bigcouch"; then RETVAL=1 failure echo return $RETVAL fi done export HOME=/srv cd $HOME daemon --check "bigcouch" --user=${user} "/opt/bigcouch/bin/${prog} >/dev/null &" RETVAL=$? echo [ $RETVAL -eq 0 ] && touch ${lockfile} return $RETVAL } stop() { RETVAL=1 echo -n $"Stopping $prog: " for i in `pidof $BEAM`; do if cat /proc/$i/cmdline | grep -Eq "name[^\-]+bigcouch"; then kill $i RETVAL=$? fi done if [ $RETVAL -eq 0 ]; then rm -f ${lockfile} ${pidfile} success echo return $RETVAL else failure echo return $RETVAL fi } 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..." return 0; fi done echo "bigcouch is stopped..." return 1; } restart() { stop start } case "$1" in start) start ;; stop) stop ;; status) status ;; restart|reload) restart ;; condrestart) [ ! -e ${lockfile} ] && restart ;; *) echo $"Usage: $0 (start|stop|restart|status)" exit 1 esac exit $?