Skip to content

Instantly share code, notes, and snippets.

@jexp
Created June 7, 2011 12:33
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 jexp/1012145 to your computer and use it in GitHub Desktop.
Save jexp/1012145 to your computer and use it in GitHub Desktop.
Neo4j server startup script replacement for MacOS
#!/bin/sh
### BEGIN INIT INFO
# Provides: neo4j
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
function abspath() { pushd . > /dev/null; if [ -d "$1" ]; then cd "$1"; dirs -l +0; else cd "`dirname \"$1\"`"; cur_dir=`dirs -l +0`; if [ "$cur_dir" == "/" ]; then echo "$cur_dir`basename \"$1\"`"; else echo "$cur_dir/`basename \"$1\"`"; fi; fi; popd > /dev/null; }
HOME=`abspath $( dirname $0 )/..`
cd $HOME
export NEO4J_HOME=$HOME
TIMEOUT=20
PID_FILE=$HOME/data/running.pid
JAVA_OPTS="-server -Dorg.neo4j.server.properties=conf/neo4j-server.properties -Dlog4j.configuration=file:conf/log4j.properties -Djava.util.logging.config.file=conf/logging.properties -DNEO4J_HOME=$HOME"
createenv() {
CLASSPATH=""
for j in lib/*.jar system/lib/*.jar system/coordinator/lib/*.jar ; do
[ -z $CLASSPATH ] && CLASSPATH=$j || CLASSPATH=$CLASSPATH:$j
done
export CLASSPATH
echo Home: $HOME
echo JAVA_OPTS: $JAVA_OPTS
echo java $JAVA_OPTS org.neo4j.server.Bootstrapper
if [ -e $PID_FILE ] ; then
JPID=$( cat $PID_FILE )
kill -0 $JPID 2>/dev/null || JPID=
fi
}
stopit() {
echo -n "Stopping neo4jd ..."
createenv
if [ -z $JPID ] ; then
echo "ERROR: server not running"
[ -e $PID_FILE ] && rm $PID_FILE
exit 1
else
echo -n "Stopping [$JPID]"
x=0
while [ $x -lt $TIMEOUT ] && kill $JPID 2>/dev/null ; do
echo -n "."
sleep 1
x=$(( $x + 1 ))
done
[ $x -eq $TIMEOUT ] && ( echo " force shutdown" ; kill -9 $JPID >/dev/null ) || echo " done"
[ -e $PID_FILE ] && rm $PID_FILE
exit 0
fi
}
startit() {
echo -n "Starting neo4jd ..."
createenv
if [ -z $JPID ] ; then
java $JAVA_OPTS org.neo4j.server.Bootstrapper >> data/log/init.log 2>&1 &
PID=$!
echo $PID > $PID_FILE
echo -n " started with [$PID] ... wait for start "
sleep 5
if kill -0 $PID 2>/dev/null ; then
echo ok
exit 0
else
echo " server did not start successful"
rm $PID_FILE
exit 1
fi
else
echo server is running with pid $JPID
exit 1
fi
}
case "$1" in
'start')
startit
;;
'stop')
stopit
;;
'restart')
stopit
startit
;;
'force-reload')
stopit
startit
;;
*)
echo "Usage: bash { 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