puppet/solr/files/solr.init
2013-05-31 14:49:25 +03:00

93 lines
1.9 KiB
Bash

#!/bin/sh
# chkconfig: 2345 90 10
# description: Solr Server
# processname: solr
### BEGIN INIT INFO
# Provides: solr
# Required-Start: $local_fs $network $syslog
# Should-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Solr server
# Description: Solr server
### END INIT INFO
SOLRUSER=solr
SOLRPATH="/srv/solr/run"
CONFIGPATH="/srv/solr/cores"
MEMORYLIMIT="-Xms1024M -Xmx4096M"
if [ `id -u` != "0" ]; then
echo "This script must be run with root privileges." && exit 1
fi
if [ ! -e "${SOLRPATH}/start.jar" ]; then
echo "Failed to find Solr jar file: ${SOLRPATH}/start.jar"
echo "Check /etc/init.d/solr file for correct settings."
exit 1
fi
if [ ! -e "${CONFIGPATH}/solr.xml" ]; then
echo "Failed to find Solr config files: ${CONFIGPATH}/solr.xml"
echo "Check /etc/init.d/solr file for correct settings."
exit 1
fi
start_solr() {
# Check to see if Solr is running
pgrep -u $SOLRUSER -f start.jar >/dev/null
RUNNING=$?
if [ $RUNNING -eq 0 ]; then
echo "[FAILED]"
echo
echo "Reason: Solr already running"
exit 1
fi
# Start Solr
echo "Starting Solr"
COMMAND="java -Djetty.host=127.0.0.1 -Dsolr.solr.home=${CONFIGPATH} ${MEMORYLIMIT} -jar start.jar >solr.log 2>&1 &"
su -s /bin/sh - ${SOLRUSER} -c "umask 007; cd ${SOLRPATH}; ${COMMAND}"
}
stop_solr() {
echo -n "Stopping Solr: "
pkill -u $SOLRUSER -f start.jar
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo "Success"
else
echo "Failed"
fi
}
case "$1" in
start)
start_solr
;;
stop)
stop_solr
;;
restart)
stop_solr
sleep 2
start_solr
;;
status)
pgrep -u $SOLRUSER -f start.jar >/dev/null
exit $?
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0