solr: Improved init script

This commit is contained in:
Ossi Salmi 2013-12-13 00:47:42 +02:00
parent 8276a8cc30
commit 0472e6b08e
2 changed files with 43 additions and 23 deletions

View file

@ -140,6 +140,7 @@ class solr {
ensure => running, ensure => running,
enable => true, enable => true,
hasstatus => true, hasstatus => true,
hasrestart => true,
} }
file { "/etc/solr": file { "/etc/solr":

View file

@ -48,51 +48,70 @@ if [ ! -e "${HOMEDIR}/solr.xml" ]; then
exit 1 exit 1
fi fi
start_solr() { do_status() {
# Check to see if Solr is running
pgrep -u ${SOLRUSER} -f start.jar >/dev/null pgrep -u ${SOLRUSER} -f start.jar >/dev/null
RUNNING=$? }
if [ $RUNNING -eq 0 ]; then
echo "[FAILED]" do_start() {
echo echo -n "Starting Solr... "
echo "Reason: Solr already running"
# Check to see if Solr is running
do_status
if [ $? -eq 0 ]; then
echo "failed. Solr already running."
exit 1 exit 1
fi fi
# Start Solr # 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 &" 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}" su -s /bin/sh - ${SOLRUSER} -c "umask 007; cd ${RUNDIR}; ${COMMAND}"
if [ $? -eq 0 ]; then
echo "done."
else
echo "failed."
exit 1
fi
} }
stop_solr() { do_stop() {
echo -n "Stopping Solr: " echo -n "Stopping Solr... "
pkill -u ${SOLRUSER} -f start.jar pkill -u ${SOLRUSER} -f start.jar
RETVAL=$? if [ $? -ne 0 ]; then
if [ $RETVAL -eq 0 ]; then echo "not running."
echo "Success"
else else
echo "Failed" for seq in 1 2 3 4 5 6 7 8 9 10; do
do_status
if [ $? -ne 0 ]; then
success=1
break
fi
sleep 1
done
if [ -n "${success}" ]; then
echo "done."
else
echo "failed."
exit 1
fi
fi fi
} }
case "$1" in case "$1" in
start) start)
start_solr do_start
;; ;;
stop) stop)
stop_solr do_stop
;; ;;
restart) restart)
stop_solr do_stop
sleep 2 do_start
start_solr
;; ;;
status) status)
pgrep -u ${SOLRUSER} -f start.jar >/dev/null do_status
exit $? exit $?
;; ;;