# HG changeset patch # User Marcin Kuzminski # Date 2010-09-23 00:55:43 # Node ID 207f5f4d3f93694a25c68e392380f863f22393fe # Parent 5a650ddd50abdfd6b7f496e025e78c61ab44a1f6 created folder for init.d scripts diff --git a/init.d/celeryd b/init.d/celeryd new file mode 100644 --- /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/hg_app_daemon b/init.d/hg_app_daemon rename from hg_app_daemon rename to init.d/hg_app_daemon diff --git a/hg_app_daemon2 b/init.d/hg_app_daemon2 rename from hg_app_daemon2 rename to init.d/hg_app_daemon2