diff options
author | Les Peabody <lpeabody@gmail.com> | 2011-10-11 02:13:32 -0400 |
---|---|---|
committer | Les Peabody <lpeabody@gmail.com> | 2011-10-11 02:13:32 -0400 |
commit | d1417abbeda6c7f825e2b391860fb984ad1f5e72 (patch) | |
tree | da3589f7a73f77f0ebca8cae7290aac4e9fa365f /init.d | |
parent | 371bc7a43b76ec72679c72eb326da2865d9fbc8e (diff) |
added a RedHat-based init.d startup script
--HG--
branch : beta
Diffstat (limited to 'init.d')
-rwxr-xr-x | init.d/rhodecode-daemon3 | 128 |
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 |