solr: Automatically determine java memory limits
This commit is contained in:
parent
298aee2225
commit
e6be930f22
2 changed files with 18 additions and 7 deletions
105
solr/templates/solr.init.erb
Normal file
105
solr/templates/solr.init.erb
Normal file
|
@ -0,0 +1,105 @@
|
|||
<%
|
||||
mem, unit = @memorysize.split
|
||||
case unit
|
||||
when "GB"
|
||||
mem = mem.to_i * 1024
|
||||
else
|
||||
mem = mem.to_i
|
||||
end
|
||||
heapmin = (mem * 0.15).to_i
|
||||
heapmax = (mem * 0.85).to_i
|
||||
-%>
|
||||
#!/bin/sh
|
||||
|
||||
# chkconfig: 2345 95 05
|
||||
# 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"
|
||||
RUNDIR="/srv/solr/run"
|
||||
HOMEDIR="/srv/solr/cores"
|
||||
LOG4JCONFIG="file:///${RUNDIR}/resources/log4j.properties"
|
||||
MEMORYLIMIT="-Xms<%= heapmin %>M -Xmx<%= heapmax %>M"
|
||||
|
||||
if [ `id -u` != "0" ]; then
|
||||
echo "This script must be run with root privileges." && exit 1
|
||||
fi
|
||||
|
||||
if [ ! -e "${RUNDIR}/start.jar" ]; then
|
||||
echo "Failed to find Solr jar file: ${RUNDIR}/start.jar"
|
||||
echo "Check /etc/init.d/solr file for correct settings."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -e "${HOMEDIR}/solr.xml" ]; then
|
||||
echo "Failed to find Solr config files: ${HOMEDIR}/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 -Dlog4j.configuration=${LOG4JCONFIG} -Dsolr.solr.home=${HOMEDIR} ${MEMORYLIMIT} -jar start.jar > /dev/null &"
|
||||
su -s /bin/sh - ${SOLRUSER} -c "umask 007; cd ${RUNDIR}; ${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
|
Loading…
Add table
Add a link
Reference in a new issue