# HG changeset patch # User Les Peabody # Date 1318313612 14400 # Node ID 238b2805851fdf95dbc2a2e73079b72ab98522fc # Parent 70e646b2806aba4549b983821ac95e5745f2beb8 added a RedHat-based init.d startup script diff -r 70e646b2806a -r 238b2805851f init.d/rhodecode-daemon3 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/init.d/rhodecode-daemon3 Tue Oct 11 02:13:32 2011 -0400 @@ -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