diff --git a/bin/install b/bin/install
index 856dc71..bf94bf7 100755
--- a/bin/install
+++ b/bin/install
@@ -22,6 +22,8 @@ rm "$OPENSHIFT_NEO4J_DIR"versions/2.1.5/neo4j-community-2.1.5-unix.tar.gz
client_result "Finishing installation ... "
mv "$OPENSHIFT_NEO4J_DIR"versions/2.1.5/neo4j-community-2.1.5 "$OPENSHIFT_NEO4J_DIR"versions/2.1.5/neo4j
+cp "$OPENSHIFT_NEO4J_DIR"bin/neo4j "$OPENSHIFT_NEO4J_DIR"versions/2.1.5/neo4j/bin/neo4j
+rm "$OPENSHIFT_NEO4J_DIR"bin/neo4j
chmod +x "$OPENSHIFT_NEO4J_DIR"versions/2.1.5/neo4j/bin/neo4j
client_result "Setting up database location ..."
diff --git a/bin/neo4j b/bin/neo4j
new file mode 100644
index 0000000..5e41a47
--- /dev/null
+++ b/bin/neo4j
@@ -0,0 +1,398 @@
+#!/bin/bash
+### BEGIN REDHAT INFO
+# chkconfig: 2345 99 20
+# description: The Neo4J graph database server. See http://neo4j.org
+### END REDHAT INFO
+### BEGIN INIT INFO
+# Provides: neo4j-service
+# Required-Start:
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+### END INIT INFO
+# Copyright (c) 2002-2014 "Neo Technology,"
+
+# Network Engine for Objects in Lund AB [http://neotechnology.com]
+#
+# This file is part of Neo4j.
+#
+# Neo4j is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+FRIENDLY_NAME="Neo4j Server"
+LAUNCHD_NAME="org.neo4j.server"
+
+function findBaseDirAndCdThere {
+# This seems to not be safe to run at any time. If that
+# is the case, it should be fixed to be so, if possible.
+ SCRIPT=$0
+
+ cd "`dirname "$SCRIPT"`"
+ SCRIPT=`basename "$SCRIPT"`
+
+ while [ -L "$SCRIPT" ]
+ do
+ SCRIPT=$( readlink "$SCRIPT" )
+ cd "$(dirname "$SCRIPT")"
+ SCRIPT=`basename "$SCRIPT"`
+ done
+ NEO4J_HOME=`cd $( dirname "$SCRIPT" )/.. && dirs -l +0`
+ NEO4J_INSTANCE=$NEO4J_HOME
+ NEO4J_CONFIG=$NEO4J_INSTANCE/conf
+ NEO4J_LOG=$NEO4J_INSTANCE/data/log
+
+ cd "$NEO4J_HOME"
+}
+
+function parseConfig {
+ if [ ${BASH_VERSINFO[0]} -eq 3 ] ; then
+ if [ ${BASH_VERSINFO[1]} -lt 2 ] ; then
+ getconfigquoted "${NEO4J_CONFIG}/neo4j-wrapper.conf"
+ getconfigquoted "${NEO4J_CONFIG}/neo4j-server.properties"
+ return
+ fi
+ fi
+ getconfig "${NEO4J_CONFIG}/neo4j-wrapper.conf"
+ getconfig "${NEO4J_CONFIG}/neo4j-server.properties"
+}
+
+findBaseDirAndCdThere
+source bin/utils
+parseConfig
+
+JAVA_OPTS="-server -XX:+DisableExplicitGC ${wrapper_java_additional}"
+[ -z "${wrapper_java_initmemory}" ] || JAVA_OPTS="$JAVA_OPTS -Xms${wrapper_java_initmemory}m"
+[ -z "${wrapper_java_maxmemory}" ] || JAVA_OPTS="$JAVA_OPTS -Xmx${wrapper_java_maxmemory}m"
+
+#NEO4J_SERVER_PORT=`( egrep "^org.neo4j.server.webserver.port" $NEO4J_INSTANCE/conf/neo4j-server.properties || echo 7474 ) | sed -e 's/.*=//'`
+NEO4J_SERVER_PORT=${org_neo4j_server_webserver_port:=7474}
+
+LAUNCHD_NAME="${LAUNCHD_NAME}.${NEO4J_SERVER_PORT}"
+
+HEADLESS=false
+
+if [ -z "${wrapper_user}" ]; then
+ NEO4J_USER=`id -un`
+else
+ NEO4J_USER=${wrapper_user}
+fi
+
+# Username to propose for neo4j user, can be overridden by -u USERNAME option
+DEFAULT_USER='neo4j'
+
+SCRIPT_NAME="${NEO4J_HOME}/bin/neo4j"
+SERVICE_NAME=${wrapper_ntservice_name:=neo4j-service}
+LAUNCHD_DIR=~/Library/LaunchAgents/
+
+TIMEOUT=120
+
+PID_FILE=${NEO4J_INSTANCE}/data/neo4j-service.pid
+buildclasspath() {
+ # confirm library jars
+ LIBDIR="$NEO4J_HOME"/lib
+ if [ ! -e "$LIBDIR" ] ; then
+ echo "Error: missing Neo4j Library, expected at $LIBDIR"
+ exit 1
+ fi
+
+ # confirm system jars
+ SYSLIBDIR="$NEO4J_HOME"/system/lib
+ if [ ! -e "$SYSLIBDIR" ] ; then
+ echo "Error: missing Neo4j System Library, expected at $SYSLIBDIR"
+ exit 1
+ fi
+
+ ALL_JARS=""
+ for jar in "$LIBDIR"/*.jar "$SYSLIBDIR"/*.jar ; do
+ [ -z "$ALL_JARS" ] && ALL_JARS="$jar" || ALL_JARS="$ALL_JARS":"$jar"
+ done
+
+ # add any plugin jars
+ for jar in "$NEO4J_HOME"/plugins/*.jar ; do
+ if [ -e "$jar" ] ; then
+ ALL_JARS="$ALL_JARS":"$jar"
+ fi
+ done
+
+ # add any plugin jars in nested folders
+ for jar in "$NEO4J_HOME"/plugins/**/*.jar ; do
+ if [ -e "$jar" ] ; then
+ ALL_JARS="$ALL_JARS":"$jar"
+ fi
+ done
+
+ CLASSPATH=${ALL_JARS}
+
+ # add useful conf stuff to classpath - always a good idea
+ CLASSPATH="$CLASSPATH":"$NEO4J_HOME"/conf/
+}
+
+detectrunning() {
+ if [ $DIST_OS = "solaris" ] ; then
+ ## SmartOS has a different lsof command line arguments
+ newpid=$(lsof -o $NEO4J_SERVER_PORT | grep '::' | head -n1 | cut -d ' ' -f 1)
+ else
+ ## This could be achieved with filtering using -sTCP:LISTEN but this option is not available
+ ## on lsof v4.78 which is the one bundled with some distros. So we have to do this grep below
+
+ #newpid=$(lsof -i :$NEO4J_SERVER_PORT -F T -Ts | grep -i "TST=LISTEN" -B1 | head -n1)
+ newpid=$(lsof | grep $NEO4J_SERVER_PORT | cut -d' ' -f5-6)
+ newpid=${newpid:1}
+ fi
+}
+
+startit() {
+
+ detectos
+ exitonnojava
+ checkstatus
+ checklimits
+
+ checkjvmcompatibility
+
+ detectrunning
+ if [ $newpid ] ; then
+ echo "Another server-process is running with [$newpid], cannot start a new one. Exiting."
+ exit 2;
+ fi
+
+ echo "Using additional JVM arguments: " $JAVA_OPTS
+
+ if [ $DIST_OS = "macosx" ] ; then
+ getlaunchdpid
+ if [ $LAUNCHDPID -eq 0 ] ; then
+ echo "Detected installation in launchd, starting it..."
+ launchctl start $LAUNCHD_NAME
+ exit 0
+ elif [ $LAUNCHDPID -gt 0 ] ; then
+ echo "Instance already running via launchd with PID $LAUNCHDPID"
+ exit 1
+ fi
+ # We fall through here since if there is no launchd install we start manually
+ fi
+
+ if [ -z $NEO4J_PID ] ; then
+ printf "Starting $FRIENDLY_NAME..."
+
+ buildclasspath
+ checkclasspath
+ checkandrepairenv
+
+ CONSOLE_LOG="$NEO4J_LOG/console.log"
+
+ if [ $UID == 0 ] ; then
+ su $NEO4J_USER -c "\"$JAVACMD\" -cp '$CLASSPATH' $JAVA_OPTS \
+ -Dneo4j.home=\"${NEO4J_HOME}\" -Dneo4j.instance=\"${NEO4J_INSTANCE}\" \
+ -Dfile.encoding=UTF-8 \
+ org.neo4j.server.Bootstrapper >> \"${CONSOLE_LOG}\" 2>&1 & echo \$! > \"$PID_FILE\" "
+ else
+ checkwriteaccess
+ echo "WARNING: not changing user"
+ "$JAVACMD" -cp "${CLASSPATH}" $JAVA_OPTS \
+ -Dneo4j.home="${NEO4J_HOME}" -Dneo4j.instance="${NEO4J_INSTANCE}" \
+ -Dfile.encoding=UTF-8 \
+ org.neo4j.server.Bootstrapper >> "${CONSOLE_LOG}" 2>&1 & echo $! > "${PID_FILE}"
+ fi
+
+ STARTED_PID=$( cat "$PID_FILE" )
+
+ if [ "$org_neo4j_server_database_mode" = "HA" ] ; then
+ if kill -0 $STARTED_PID 2>/dev/null ; then
+ echo "HA instance started in process [$STARTED_PID]. Will be operational once connected to peers. See ${CONSOLE_LOG} for current status."
+ exit 0
+ else
+ echo "HA instance was unable to start. See ${CONSOLE_LOG}."
+ rm "$PID_FILE"
+ exit 1
+ fi
+ fi
+
+ echo -n "process [$STARTED_PID]"
+
+ if [ $WAIT = "true" ] ; then
+ echo -n "... waiting for server to be ready."
+ while kill -0 $STARTED_PID 2> /dev/null ; do
+ ## wait for start, pick up the server listening on the port
+ detectrunning
+ if [ $newpid ] ; then
+ break
+ fi
+
+ printf "."
+ sleep 1
+ done
+
+ if kill -0 $STARTED_PID 2>/dev/null ; then
+ if [ "$newpid" != "$STARTED_PID" ] ; then
+ rm "$PID_FILE"
+ kill -9 $STARTED_PID
+ echo " Failed to start within $TIMEOUT seconds."
+ echo "$FRIENDLY_NAME failed to start, please check the logs for details."
+ echo "If startup is blocked on a long recovery, use '$0 start-no-wait' to give the startup more time."
+ exit 2
+ fi
+
+ echo " OK."
+ echo "http://localhost:$NEO4J_SERVER_PORT/ is ready."
+ exit 0
+ fi
+
+ echo " Failed to start within $TIMEOUT seconds."
+ echo "$FRIENDLY_NAME may have failed to start, please check the logs."
+ rm "$PID_FILE"
+ exit 1
+ else
+ echo "...Started the server in the background, returning..."
+ fi
+ else
+ echo "$FRIENDLY_NAME already running with pid $NEO4J_PID"
+ exit 0
+ fi
+}
+
+console() {
+
+ checkstatus
+ checklimits
+
+ if [ -z $NEO4J_PID ] ; then
+ echo "Starting $FRIENDLY_NAME console-mode..."
+
+ exitonnojava
+ buildclasspath
+ checkwriteaccess
+ checkandrepairenv
+
+ echo "Using additional JVM arguments: " $JAVA_OPTS
+
+ "$JAVACMD" -cp "${CLASSPATH}" $JAVA_OPTS \
+ -Dneo4j.home="${NEO4J_HOME}" -Dneo4j.instance="${NEO4J_INSTANCE}" \
+ -Dfile.encoding=UTF-8 \
+ org.neo4j.server.Bootstrapper
+
+ else
+ echo "$FRIENDLY_NAME already running with pid $NEO4J_PID"
+ exit 1
+ fi
+}
+
+# Modifies neo4j config to set the effective user when running as a service
+# usage: modify_user_config [true|false]
+# pass in "true" for created to mark that the user was created (instead than pre-existing)
+modify_user_config() {
+ created=${2:-"false"}
+ if `grep -q "wrapper\.user=" "$NEO4J_INSTANCE/conf/neo4j-wrapper.conf"` ; then
+ sed -i -e "s/^.*wrapper\.user=.*$/wrapper\.user=$1/" "$NEO4J_INSTANCE/conf/neo4j-wrapper.conf"
+ else
+ echo "wrapper.user=$1" >> "$NEO4J_INSTANCE/conf/neo4j-wrapper.conf"
+ fi
+
+ if `grep -q "wrapper\.user\.created=" "$NEO4J_INSTANCE/conf/neo4j-wrapper.conf"` ; then
+ sed -i -e "s/^.*wrapper\.user\.created=.*$/wrapper\.user\.created=${created}/" "$NEO4J_INSTANCE/conf/neo4j-wrapper.conf"
+ else
+ echo "wrapper.user.created=${created}" >> "$NEO4J_INSTANCE/conf/neo4j-wrapper.conf"
+ fi
+}
+
+showinfo() {
+ reportstatus
+
+ exitonnojava
+ buildclasspath
+
+ echo "NEO4J_HOME: $NEO4J_HOME"
+ echo "NEO4J_SERVER_PORT: $NEO4J_SERVER_PORT"
+ echo "NEO4J_INSTANCE: $NEO4J_INSTANCE"
+ echo "JAVA_HOME: $JAVA_HOME"
+ echo "JAVA_OPTS: $JAVA_OPTS"
+ echo "CLASSPATH: $CLASSPATH"
+}
+
+# END FUNCTIONS
+# BEGIN MAIN
+
+# Parse option flags
+while getopts "u:h" opt; do
+ case $opt in
+ h)
+ echo "Running in headless (-h) mode" >&2
+ HEADLESS=true
+ ;;
+ u)
+ echo "Installing with user $OPTARG"
+ DEFAULT_USER=$OPTARG
+ ;;
+ \?)
+ echo "Invalid option: -$OPTARG" >&2
+ exit 1
+ ;;
+ :)
+ echo "Option -$OPTARG requires an argument." >&2
+ exit 1
+ ;;
+ esac
+done
+
+case "${!OPTIND}" in
+ console)
+ console
+ exit 0
+ ;;
+
+ start)
+ WAIT=true
+ startit
+ ;;
+
+ start-no-wait)
+ WAIT=false
+ startit
+ exit 0
+ ;;
+
+ stop)
+ stopit
+ exit 0
+ ;;
+
+ restart)
+ WAIT=true
+ stopit
+ startit
+ exit 0
+ ;;
+
+ status)
+ reportstatus
+ exit 0
+ ;;
+
+ info)
+ showinfo
+ exit 0
+ ;;
+ install)
+ echo "Legacy install now lives in the 'neo4j-installer' script"
+ exit 1
+ ;;
+ remove)
+ echo "Legacy remove now lives in the 'neo4j-installer' script"
+ exit 1
+ ;;
+ *)
+ echo "Usage: neo4j { console | start | start-no-wait | stop | restart | status | info | install | remove }"
+ exit 0;;
+
+esac
+
+exit $?