diff options
author | Marcin Kuzminski <marcin@python-works.com> | 2010-09-23 02:55:43 +0200 |
---|---|---|
committer | Marcin Kuzminski <marcin@python-works.com> | 2010-09-23 02:55:43 +0200 |
commit | 23ab54821cf05327f36ed87ae15c5407aef34195 (patch) | |
tree | 643ee31cb4f64706b9a635f372a78c8a97295b39 /init.d | |
parent | 990aebc2f36573378fb35cdcb7e64498cbfb72bd (diff) |
created folder for init.d scripts
--HG--
rename : hg_app_daemon => init.d/hg_app_daemon
rename : hg_app_daemon2 => init.d/hg_app_daemon2
Diffstat (limited to 'init.d')
-rw-r--r-- | init.d/celeryd | 224 | ||||
-rwxr-xr-x | init.d/hg_app_daemon | 61 | ||||
-rwxr-xr-x | init.d/hg_app_daemon2 | 77 |
3 files changed, 362 insertions, 0 deletions
diff --git a/init.d/celeryd b/init.d/celeryd new file mode 100644 index 00000000..f31522bc --- /dev/null +++ b/init.d/celeryd @@ -0,0 +1,224 @@ +#!/bin/sh -e +# ============================================ +# celeryd - Starts the Celery worker daemon. +# ============================================ +# +# :Usage: /etc/init.d/celeryd {start|stop|force-reload|restart|try-restart|status} +# +# :Configuration file: /etc/default/celeryd +# +# To configure celeryd you probably need to tell it where to chdir. +# +# EXAMPLE CONFIGURATION +# ===================== +# +# this is an example configuration for a Python project: +# +# /etc/default/celeryd: +# +# # Where to chdir at start. +# CELERYD_CHDIR="/opt/Myproject/" +# +# # Extra arguments to celeryd +# CELERYD_OPTS="--time-limit 300" +# +# # Name of the celery config module.# +# CELERY_CONFIG_MODULE="celeryconfig" +# +# EXAMPLE DJANGO CONFIGURATION +# ============================ +# +# # Where the Django project is. +# CELERYD_CHDIR="/opt/Project/" +# +# # Name of the projects settings module. +# DJANGO_SETTINGS_MODULE="settings" +# +# # Path to celeryd +# CELERYD="/opt/Project/manage.py celeryd" +# +# AVAILABLE OPTIONS +# ================= +# +# * CELERYD_OPTS +# Additional arguments to celeryd, see ``celeryd --help`` for a list. +# +# * CELERYD_CHDIR +# Path to chdir at start. Default is to stay in the current directory. +# +# * CELERYD_PIDFILE +# Full path to the pidfile. Default is /var/run/celeryd.pid. +# +# * CELERYD_LOGFILE +# Full path to the celeryd logfile. Default is /var/log/celeryd.log +# +# * CELERYD_LOG_LEVEL +# Log level to use for celeryd. Default is INFO. +# +# * CELERYD +# Path to the celeryd program. Default is ``celeryd``. +# You can point this to an virtualenv, or even use manage.py for django. +# +# * CELERYD_USER +# User to run celeryd as. Default is current user. +# +# * CELERYD_GROUP +# Group to run celeryd as. Default is current user. + + +### BEGIN INIT INFO +# Provides: celeryd +# Required-Start: $network $local_fs $remote_fs +# Required-Stop: $network $local_fs $remote_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: celery task worker daemon +### END INIT INFO + +set -e +CELERYD_CHDIR="/opt/Myproject/" +CELERYD_PID_FILE="/var/run/celeryd.pid" +CELERYD_LOG_FILE="/var/log/celeryd.log" +CELERYD_LOG_LEVEL="DEBUG" +DEFAULT_CELERYD="/home/v-env/celeryd" + +# /etc/init.d/ssh: start and stop the celery task worker daemon. + +if test -f /etc/default/celeryd; then + . /etc/default/celeryd +fi + +CELERYD=${CELERYD:-$DEFAULT_CELERYD} + +export CELERY_LOADER + +. /lib/lsb/init-functions + +CELERYD_OPTS="$CELERYD_OPTS -f $CELERYD_LOG_FILE -l $CELERYD_LOG_LEVEL" + +if [ -n "$2" ]; then + CELERYD_OPTS="$CELERYD_OPTS $2" +fi + +# Extra start-stop-daemon options, like user/group. +if [ -n "$CELERYD_USER" ]; then + DAEMON_OPTS="$DAEMON_OPTS --chuid $CELERYD_USER" +fi +if [ -n "$CELERYD_GROUP" ]; then + DAEMON_OPTS="$DAEMON_OPTS --group $CELERYD_GROUP" +fi + +if [ -n "$CELERYD_CHDIR" ]; then + DAEMON_OPTS="$DAEMON_OPTS --chdir $CELERYD_CHDIR" +fi + + +# Are we running from init? +run_by_init() { + ([ "$previous" ] && [ "$runlevel" ]) || [ "$runlevel" = S ] +} + + +check_dev_null() { + if [ ! -c /dev/null ]; then + if [ "$1" = log_end_msg ]; then + log_end_msg 1 || true + fi + if ! run_by_init; then + log_action_msg "/dev/null is not a character device!" + fi + exit 1 + fi +} + + +export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" + + +stop_worker () { + cmd="start-stop-daemon --stop \ + --quiet \ + $* \ + --pidfile $CELERYD_PID_FILE" + if $cmd; then + log_end_msg 0 + else + log_end_msg 1 + fi +} + +start_worker () { + cmd="start-stop-daemon --start $DAEMON_OPTS \ + --quiet \ + --oknodo \ + --background \ + --make-pidfile \ + $* \ + --pidfile $CELERYD_PID_FILE + --exec $CELERYD -- $CELERYD_OPTS" + if $cmd; then + log_end_msg 0 + else + log_end_msg 1 + fi +} + + + +case "$1" in + start) + check_dev_null + log_daemon_msg "Starting celery task worker server" "celeryd" + start_worker + ;; + stop) + log_daemon_msg "Stopping celery task worker server" "celeryd" + stop_worker --oknodo + ;; + + reload|force-reload) + echo "Use start+stop" + ;; + + restart) + log_daemon_msg "Restarting celery task worker server" "celeryd" + stop_worker --oknodo --retry 30 + check_dev_null log_end_msg + start_worker + ;; + + try-restart) + log_daemon_msg "Restarting celery task worker server" "celeryd" + set +e + stop_worker --retry 30 + RET="$?" + set -e + case $RET in + 0) + # old daemon stopped + check_dev_null log_end_msg + start_worker + ;; + 1) + # daemon not running + log_progress_msg "(not running)" + log_end_msg 0 + ;; + *) + # failed to stop + log_progress_msg "(failed to stop)" + log_end_msg 1 + ;; + esac + ;; + + status) + status_of_proc -p $CELERYD_PID_FILE $CELERYD celeryd && exit 0 || exit $? + ;; + + *) + log_action_msg "Usage: /etc/init.d/celeryd {start|stop|force-reload|restart|try-restart|status}" + exit 1 +esac + +exit 0 diff --git a/init.d/hg_app_daemon b/init.d/hg_app_daemon new file mode 100755 index 00000000..aff395c2 --- /dev/null +++ b/init.d/hg_app_daemon @@ -0,0 +1,61 @@ +#!/sbin/runscript +######################################## +#### THIS IS AN GENTOO INIT.D SCRIPT#### +######################################## + +APP_NAME="hg_app" +APP_HOMEDIR="marcink/python_workspace" +APP_PATH="/home/$APP_HOMEDIR/$APP_NAME" + +CONF_NAME="production.ini" + +PID_PATH="$APP_PATH/$APP_NAME.pid" +LOG_PATH="$APP_PATH/$APP_NAME.log" + +PYTHON_PATH="/home/$APP_HOMEDIR/v-env" + +RUN_AS="marcink" + +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" + +#extra options +opts="${opts} restartdelay" + +depend() { + need nginx +} + +start() { + ebegin "Starting $APP_NAME" + start-stop-daemon -d $APP_PATH -e PYTHON_EGG_CACHE="/tmp" \ + --start --quiet \ + --pidfile $PID_PATH \ + --user $RUN_AS \ + --exec $DAEMON -- $DAEMON_OPTS + eend $? +} + +stop() { + ebegin "Stopping $APP_NAME" + start-stop-daemon -d $APP_PATH \ + --stop --quiet \ + --pidfile $PID_PATH || echo "$APP_NAME - Not running!" + if [ -f $PID_PATH ]; then + rm $PID_PATH + fi + eend $? +} + +restartdelay() { + #stop() + echo "sleep3" + sleep 3 + + #start() +} diff --git a/init.d/hg_app_daemon2 b/init.d/hg_app_daemon2 new file mode 100755 index 00000000..9524c60b --- /dev/null +++ b/init.d/hg_app_daemon2 @@ -0,0 +1,77 @@ +#!/bin/sh -e +######################################## +#### THIS IS AN DEBIAN INIT.D SCRIPT#### +######################################## + +### BEGIN INIT INFO +# Provides: hg-app +# Required-Start: $all +# Required-Stop: $all +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: starts instance of hg-app +# Description: starts instance of hg-app using start-stop-daemon +### END INIT INFO + +APP_NAME="hg_app" +APP_HOMEDIR="marcink/python_workspace" +APP_PATH="/home/$APP_HOMEDIR/$APP_NAME" + +CONF_NAME="production.ini" + +PID_PATH="$APP_PATH/$APP_NAME.pid" +LOG_PATH="$APP_PATH/$APP_NAME.log" + +PYTHON_PATH="/home/$APP_HOMEDIR/v-env" + +RUN_AS="marcink" + +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" + + +case "$1" in + start) + echo "Starting $APP_NAME" + start-stop-daemon -d $APP_PATH -e PYTHON_EGG_CACHE="/tmp" \ + --start --quiet \ + --pidfile $PID_PATH \ + --user $RUN_AS \ + --exec $DAEMON -- $DAEMON_OPTS + ;; + stop) + echo "Stopping $APP_NAME" + start-stop-daemon -d $APP_PATH \ + --stop --quiet \ + --pidfile $PID_PATH || echo "$APP_NAME - Not running!" + if [ -f $PID_PATH ]; then + rm $PID_PATH + fi + ;; + restart) + echo "Restarting $APP_NAME" + ### stop ### + echo "Stopping $APP_NAME" + start-stop-daemon -d $APP_PATH \ + --stop --quiet \ + --pidfile $PID_PATH || echo "$APP_NAME - Not running!" + if [ -f $PID_PATH ]; then + rm $PID_PATH + fi + ### start ### + echo "Starting $APP_NAME" + start-stop-daemon -d $APP_PATH -e PYTHON_EGG_CACHE="/tmp" \ + --start --quiet \ + --pidfile $PID_PATH \ + --user $RUN_AS \ + --exec $DAEMON -- $DAEMON_OPTS + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac
\ No newline at end of file |