Mercurial > kallithea
view init.d/celeryd @ 1039:51b70569c330 beta
extended admin rescan to show what repositories was added and what removed
fixed found bugs, added expunge to cached getter since it introduce some more problems.
Added some relationship to properly clean related objects from database.
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 13 Feb 2011 01:38:39 +0100 |
parents | 207f5f4d3f93 |
children |
line wrap: on
line source
#!/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