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.
 
 

120 lines
2.2 KiB

#!/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 $?