Browse Source

Update the celerybeat init script

Ask Solem 15 years ago
parent
commit
8754de34c3
1 changed files with 59 additions and 42 deletions
  1. 59 42
      contrib/debian/init.d/celerybeat

+ 59 - 42
contrib/debian/init.d/celerybeat

@@ -1,4 +1,4 @@
-#! /bin/sh
+#!/bin/sh
 
 ### BEGIN INIT INFO
 # Provides:		celerybeat
@@ -6,34 +6,53 @@
 # Required-Stop:	
 # Default-Start:	2 3 4 5
 # Default-Stop:		1
-# Short-Description:	celery clock service
+# Short-Description:	celery periodic task scheduler
 ### END INIT INFO
 
+# To use this with Django set your DJANGO_PROJECT_DIR in /etc/default/celeryd:
+#
+#   echo "DJANGO_PROJECT_DIR=/opt/Myapp" > /etc/default/celeryd
+#
+# The django project dir is the directory that contains settings and
+# manage.py.
+
+# celerybeat uses the celeryd default file by default, but you can also
+# add a /etc/default/celerybeat file to set different settings for celerybeat.
+
 set -e
 
-VIRTUALENV=/opt/Opal/current
-DJANGO_PROJECT_DIR=/opt/Opal/release/opal
 DJANGO_SETTINGS_MODULE=settings
 CELERYBEAT_PID_FILE="/var/run/celerybeat.pid"
 CELERYBEAT_LOG_FILE="/var/log/celerybeat.log"
 CELERYBEAT_LOG_LEVEL="INFO"
-CELERYBEAT="celerybeat"
-
-export DJANGO_SETTINGS_MODULE
-export DJANGO_PROJECT_DIR
+DEFAULT_CELERYBEAT="celerybeat"
 
-# /etc/init.d/ssh: start and stop the celery clock server
+# /etc/init.d/ssh: start and stop the celery task worker daemon.
 
+if test -f /etc/default/celeryd; then
+    . /etc/default/celeryd
+fi
 if test -f /etc/default/celerybeat; then
     . /etc/default/celerybeat
 fi
 
+export DJANGO_SETTINGS_MODULE
+export DJANGO_PROJECT_DIR
+
+if [ -z "$CELERYBEAT" ]; then
+    if [ ! -z "$DJANGO_PROJECT_DIR" ]; then
+        CELERYBEAT="$DJANGO_PROJECT_DIR/manage.py"
+        CELERYBEAT_OPTS="celerybeat"
+    else
+        CELERYBEAT=$DEFAULT_CELERYBEAT
+    fi
+fi
 
 . /lib/lsb/init-functions
 
 cd $DJANGO_PROJECT_DIR
 
-CELERYBEAT_OPTS="-f $CELERYBEAT_LOG_FILE -l $CELERYBEAT_LOG_LEVEL -p \
+CELERYBEAT_OPTS="$CELERYBEAT_OPTS -f $CELERYBEAT_LOG_FILE -l $CELERYBEAT_LOG_LEVEL -p \
                     $CELERYBEAT_PID_FILE -d"
 
 if [ -n "$2" ]; then
@@ -61,7 +80,6 @@ check_dev_null() {
 
 export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
 if [ ! -z "$VIRTUALENV" ]; then
-    . "$VIRTUALENV/bin/activate"
     export PATH="$VIRTUALENV/bin:$PATH"
     CELERYBEAT="$VIRTUALENV/bin/$CELERYBEAT"
 fi
@@ -69,45 +87,44 @@ fi
 
 case "$1" in
   start)
-	check_dev_null
-	log_daemon_msg "Starting celery clock server" "celerybeat"
-	if start-stop-daemon --start --quiet --oknodo --pidfile $CELERYBEAT_PID_FILE --exec $CELERYBEAT -- $CELERYBEAT_OPTS; then
-	    log_end_msg 0
-	else
-	    log_end_msg 1
-	fi
-	;;
+    check_dev_null
+    log_daemon_msg "Starting celery periodic task scheduler" "celerybeat"
+    if start-stop-daemon --start --quiet --oknodo --pidfile $CELERYBEAT_PID_FILE --exec $CELERYBEAT -- $CELERYBEAT_OPTS; then
+        log_end_msg 0
+    else
+        log_end_msg 1
+    fi
+    ;;
   stop)
-	log_daemon_msg "Stopping celery clock server" "celerybeat"
-	if start-stop-daemon --stop --quiet --oknodo --pidfile $CELERYBEAT_PID_FILE; then log_end_msg 0
-	else
-	    log_end_msg 1
-	fi
-	;;
+    log_daemon_msg "Stopping celery periodic task scheduler" "celerybeat"
+    if start-stop-daemon --stop --quiet --oknodo --pidfile $CELERYBEAT_PID_FILE; then log_end_msg 0 else
+        log_end_msg 1
+    fi
+    ;;
 
   reload|force-reload)
     echo "Use start+stop"
-	;;
+    ;;
 
   restart)
-	log_daemon_msg "Restarting celery clock server" "celerybeat"
-	start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $CELERYBEAT_PID_FILE
-	check_dev_null log_end_msg
-	if start-stop-daemon --start --quiet --oknodo --pidfile $CELERYBEAT_PID_FILE --exec $CELERYBEAT -- $CELERYBEAT_OPTS; then
-	    log_end_msg 0
-	else
-	    log_end_msg 1
-	fi
-	;;
+    log_daemon_msg "Restarting celery periodic task scheduler" "celerybeat"
+    start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $CELERYBEAT_PID_FILE
+    check_dev_null log_end_msg
+    if start-stop-daemon --start --quiet --oknodo --pidfile $CELERYBEAT_PID_FILE --exec $CELERYBEAT -- $CELERYBEAT_OPTS; then
+        log_end_msg 0
+    else
+        log_end_msg 1
+    fi
+    ;;
 
   try-restart)
-	log_daemon_msg "Restarting celery clock server" "celerybeat"
-	set +e
-	start-stop-daemon --stop --quiet --retry 30 --pidfile $CELERYBEAT_PID_FILE
-	RET="$?"
-	set -e
-	case $RET in
-	    0)
+    log_daemon_msg "Restarting celery periodic task scheduler" "celerybeat"
+    set +e
+    start-stop-daemon --stop --quiet --retry 30 --pidfile $CELERYBEAT_PID_FILE
+    RET="$?"
+    set -e
+    case $RET in
+        0)
 		# old daemon stopped
 		check_dev_null log_end_msg
 		if start-stop-daemon --start --quiet --oknodo --pidfile $CELERYBEAT_PID_FILE --exec $CELERYBEAT -- $CELERYBEAT_OPTS; then