95 lines
1.9 KiB
Bash
95 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."
|
|
RETVAL=1
|
|
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."
|
|
RETVAL=1
|
|
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"
|
|
RETVAL=1
|
|
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
|
|
;;
|
|
|
|
*)
|
|
echo "Usage: $0 {start|stop|restart|status}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
exit 0
|