aboutsummaryrefslogtreecommitdiff
path: root/init.d
diff options
context:
space:
mode:
authorLes Peabody <lpeabody@gmail.com>2011-10-11 02:13:32 -0400
committerLes Peabody <lpeabody@gmail.com>2011-10-11 02:13:32 -0400
commitd1417abbeda6c7f825e2b391860fb984ad1f5e72 (patch)
treeda3589f7a73f77f0ebca8cae7290aac4e9fa365f /init.d
parent371bc7a43b76ec72679c72eb326da2865d9fbc8e (diff)
added a RedHat-based init.d startup script
--HG-- branch : beta
Diffstat (limited to 'init.d')
-rwxr-xr-xinit.d/rhodecode-daemon3128
1 files changed, 128 insertions, 0 deletions
diff --git a/init.d/rhodecode-daemon3 b/init.d/rhodecode-daemon3
new file mode 100755
index 00000000..e8ae45cc
--- /dev/null
+++ b/init.d/rhodecode-daemon3
@@ -0,0 +1,128 @@
+#!/bin/sh
+##################################################
+#
+# RhodeCode server startup script
+# Recommended default-startup: 2 3 4 5
+# Recommended default-stop: 0 1 6
+#
+##################################################
+
+
+APP_NAME="rhodecode"
+# the location of your app
+# since this is a web app, it should go in /var/www
+APP_PATH="/var/www/$APP_NAME"
+
+CONF_NAME="production.ini"
+
+# write to wherever the PID should be stored, just ensure
+# that the user you run paster as has the appropriate permissions
+# same goes for the log file
+PID_PATH="/var/run/rhodecode/pid"
+LOG_PATH="/var/log/rhodecode/rhodecode.log"
+
+# replace this with the path to the virtual environment you
+# made for RhodeCode
+PYTHON_PATH="/opt/python_virtualenvironments/rhodecode-venv"
+
+RUN_AS="rhodecode"
+
+DAEMON="$PYTHON_PATH/bin/paster"
+
+DAEMON_OPTS="serve --daemon \
+ --user=$RUN_AS \
+ --group=$RUN_AS \
+ --pid-file=$PID_PATH \
+ --log-file=$LOG_PATH $APP_PATH/$CONF_NAME"
+
+DESC="rhodecode-server"
+LOCK_FILE="/var/lock/subsys/$APP_NAME"
+
+# source CentOS init functions
+. /etc/init.d/functions
+
+RETVAL=0
+
+remove_pid () {
+ rm -f ${PID_PATH}
+ rmdir `dirname ${PID_PATH}`
+}
+
+ensure_pid_dir () {
+ PID_DIR=`dirname ${PID_PATH}`
+ if [ ! -d ${PID_DIR} ] ; then
+ mkdir -p ${PID_DIR}
+ chown -R ${RUN_AS}:${RUN_AS} ${PID_DIR}
+ chmod 755 ${PID_DIR}
+ fi
+}
+
+start_rhodecode () {
+ ensure_pid_dir
+ PYTHON_EGG_CACHE="/tmp" daemon --pidfile $PID_PATH \
+ --user $RUN_AS "$DAEMON $DAEMON_OPTS"
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch $LOCK_FILE
+ return $RETVAL
+}
+
+stop_rhodecode () {
+ if [ -e $LOCK_FILE ]; then
+ killproc -p $PID_PATH
+ RETVAL=$?
+ rm -f $LOCK_FILE
+ rm -f $PID_PATH
+ else
+ RETVAL=1
+ fi
+ return $RETVAL
+}
+
+status_rhodecode() {
+ if [ -e $LOCK_FILE ]; then
+ # exit with non-zero to indicate failure
+ RETVAL=1
+ else
+ RETVAL=0
+ fi
+ return $RETVAL
+}
+
+restart_rhodecode () {
+ stop_rhodecode
+ start_rhodecode
+ RETVAL=$?
+}
+
+case "$1" in
+ start)
+ echo -n $"Starting $DESC: "
+ start_rhodecode
+ echo
+ ;;
+ stop)
+ echo -n $"Stopping $DESC: "
+ stop_rhodecode
+ echo
+ ;;
+ status)
+ status_rhodecode
+ RETVAL=$?
+ if [ ! $RETVAL -eq 0 ]; then
+ echo "RhodeCode server is running..."
+ else
+ echo "RhodeCode server is stopped."
+ fi
+ ;;
+ restart)
+ echo -n $"Restarting $DESC: "
+ restart_rhodecode
+ echo
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|restart|status}"
+ RETVAL=1
+ ;;
+esac
+
+exit $RETVAL \ No newline at end of file