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