Skip to content

Instantly share code, notes, and snippets.

@michaeldwan
Created May 12, 2009 18:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save michaeldwan/110645 to your computer and use it in GitHub Desktop.
Save michaeldwan/110645 to your computer and use it in GitHub Desktop.
#!/bin/bash
# chkconfig: 2345 98 02
# description: Starts and stops Solr production
# Calculate RAILS_ROOT as 2 directories above the current file
_script_name=`basename $0`
RAILS_ROOT=`pwd`/`echo $0 | sed -e s/$_script_name//`..
RAILS_ENV=$2
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
SOLR_HOME="$RAILS_ROOT/vendor/solr"
PIDFILE="$RAILS_ROOT/tmp/pids/solr.pid"
DATA_PATH=$4
LOG_FILE="$RAILS_ROOT/log/solr.console.log"
START_COMMAND="java -Dsolr.data.dir=$DATA_PATH -Djetty.logs=$RAILS_ROOT/log -Djetty.port=$3 -jar $SOLR_HOME/start.jar"
NAME="Solr ($RAILS_ENV)"
echo $SOLR_HOME
start() {
echo -n "Starting $NAME"
if [ -f $PIDFILE ]; then
echo -n "$PIDFILE exists. $NAME may be running."
else
echo $START_COMMAND
cd $SOLR_HOME
$START_COMMAND 2> $LOG_FILE &
sleep 2
echo `ps -ef | grep -v grep | grep "$START_COMMAND" | awk '{print $2}'` > $PIDFILE
echo "Done"
fi
return 0
}
stop() {
echo -n "Stopping $NAME"
kill `cat $PIDFILE`
rm $PIDFILE
echo "Done"
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 5
start
;;
*)
echo "Usage: $0 (start | stop | restart)"
exit 1
esac
exit $?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment