Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > a5196342bd8cb391833cb1c1a9a4294d > files > 3

groonga-server-1.2.7-1.fc14.x86_64.rpm

#!/bin/bash
#
# /etc/rc.d/init.d/groonga
#
# chkconfig: - 80 20
# description: A full-text search engine and column store.
# processname: groonga
# config: /etc/sysconfig/groonga
# pidfile: /var/run/groonga/groonga.pid
#
### BEGIN INIT INFO
# Provides:          groonga
# Default-Stop:      0 1 6
# Required-Start:    $remote_fs
# Required-Stop:     $remote_fs
# Short-Description: groonga's init script
# Description:       groonga is a full-text search engine and column store.
### END INIT INFO

# Source function library.
. /etc/init.d/functions

name="groonga"
prog="groonga"
groonga=/usr/bin/$prog
USER=groonga
GROUP=groonga
DATABASE=/var/lib/groonga/db/db
ADDRESS=127.0.0.1
PIDFILE=/var/run/groonga/$prog.pid
PROTOCOL=gqtp
LOG_PATH=/var/log/groonga/groonga.log
QUERY_LOG_PATH=/var/log/groonga/query.log
OPTION_ARGS=""

if [ -f /etc/sysconfig/$name ]; then
	. /etc/sysconfig/$name
fi

DAEMON_ARGS=""
GROONGA_ARGS="-d"

if [ -n "${USER}" ]; then
	if ! getent passwd | grep -q "^${USER}:"; then
	        echo "$0: user for running $prog doesn't exist: ${USER}" >&2
		exit 1
	fi
	if [ -n "${PIDFILE}" ]; then
		mkdir -p `dirname ${PIDFILE}`
		chown -R ${USER} `dirname ${PIDFILE}`
	fi
	DAEMON_ARGS="${DAEMON_ARGS} --user ${USER}"
fi

if [ -n "${PIDFILE}" ]; then
	mkdir -p $(dirname ${PIDFILE})
	if [ -n "${USER}" ]; then
		chown -R ${USER} $(dirname ${PIDFILE})
	fi
	GROONGA_ARGS="${GROONGA_ARGS} --pid-path ${PIDFILE}"
fi
if [ -n "${ADDRESS}" ]; then
	GROONGA_ARGS="${GROONGA_ARGS} --address ${ADDRESS}"
fi
if [ -n "${LOG_PATH}" ]; then
	mkdir -p $(dirname ${LOG_PATH})
	if [ -n "${USER}" ]; then
		chown -R ${USER} $(dirname ${LOG_PATH})
	fi
	GROONGA_ARGS="${GROONGA_ARGS} --log-path ${LOG_PATH}"
fi
if [ -n "${QUERY_LOG_PATH}" ]; then
	mkdir -p $(dirname ${QUERY_LOG_PATH})
	if [ -n "${USER}" ]; then
		chown -R ${USER} $(dirname ${QUERY_LOG_PATH})
	fi
	GROONGA_ARGS="${GROONGA_ARGS} --query-log-path ${QUERY_LOG_PATH}"
fi
if [ -n "${PROTOCOL}" ]; then
	GROONGA_ARGS="${GROONGA_ARGS} --protocol ${PROTOCOL}"
fi
GROONGA_ARGS="${GROONGA_ARGS} ${OPTION_ARGS}"

if [ -z "${DATABASE}" ]; then
	echo "$0: DATABASE should not be empty" >&2
	exit 1
fi

if [ -f "${DATABASE}" ]; then
	GROONGA_ARGS="${GROONGA_ARGS} ${DATABASE}"
else
	mkdir -p $(dirname ${DATABASE})
	if [ -n "${USER}" ]; then
		chown -R ${USER} $(dirname ${DATABASE})
	fi
	if [ -n "${GROUP}" ]; then
		chgrp -R ${GROUP} $(dirname ${DATABASE})
	fi
	GROONGA_ARGS="${GROONGA_ARGS} -n ${DATABASE}"
fi

RETVAL=0


start() {
	echo -n "Starting $name: "
	daemon $DAEMON_ARGS $groonga "$GROONGA_ARGS"
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
	return $RETVAL
}

stop() {
	echo -n "Shutting down $name: "
	killproc $prog
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
	return $RETVAL
}

restart() {
	stop
	start
}

status() {
	ARGS=""
	if [ -n "${PROTOCOL}" ]; then
		ARGS="${ARGS} --protocol ${PROTOCOL}"
	fi
	$groonga $ARGS -c $ADDRESS status
}

case "$1" in
    start)
	start
	;;
    stop)
	stop
	;;
    restart)
    	restart
	;;
    reload)
	killproc $groonga -HUP
	;;
    condrestart)
	[ -f /var/lock/subsys/$prog ] && restart || :
	;;
    status)
	status
	;;
    *)
	echo "Usage: $prog {start|stop|reload|restart|condrestart|status}"
	exit 1
	;;
esac
exit $?