| @ -0,0 +1,120 @@ | |||
| #!/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/bigcouch} | |||
| user="bigcouch" | |||
| RETVAL=0 | |||
| STOP_TIMEOUT=${STOP_TIMEOUT-10} | |||
| # Check that networking is up. | |||
| if [ "$NETWORKING" = "no" ]; then | |||
| exit 0 | |||
| fi | |||
| [ -f /usr/bin/bigcouch ] || 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} "/usr/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 $? | |||