Explorar o código

Better init script

Ask Solem %!s(int64=15) %!d(string=hai) anos
pai
achega
0545b98482
Modificáronse 1 ficheiros con 51 adicións e 39 borrados
  1. 51 39
      contrib/debian/init.d/celeryd

+ 51 - 39
contrib/debian/init.d/celeryd

@@ -1,4 +1,4 @@
-#! /bin/sh
+#!/bin/sh
 
 ### BEGIN INIT INFO
 # Provides:		celeryd
@@ -9,18 +9,20 @@
 # Short-Description:	celery task worker daemon
 ### 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.
+
 set -e
 
-VIRTUALENV=/opt/Opal/current
-DJANGO_PROJECT_DIR=/opt/Opal/release/opal
 DJANGO_SETTINGS_MODULE=settings
 CELERYD_PID_FILE="/var/run/celeryd.pid"
 CELERYD_LOG_FILE="/var/log/celeryd.log"
 CELERYD_LOG_LEVEL="INFO"
-CELERYD="celeryd"
-
-export DJANGO_SETTINGS_MODULE
-export DJANGO_PROJECT_DIR
+DEFAULT_CELERYD="celeryd"
 
 # /etc/init.d/ssh: start and stop the celery task worker daemon.
 
@@ -28,6 +30,17 @@ if test -f /etc/default/celeryd; then
     . /etc/default/celeryd
 fi
 
+export DJANGO_SETTINGS_MODULE
+export DJANGO_PROJECT_DIR
+
+if [ -z "$CELERYD" ]; then
+    if [ ! -z "$DJANGO_PROJECT_DIR" ]; then
+        CELERYD="$DJANGO_PROJECT_DIR/manage.py"
+        CELERYD_OPTS="celeryd"
+    else
+        CELERYD=$DEFAULT_CELERYD
+    fi
+fi
 
 . /lib/lsb/init-functions
 
@@ -61,7 +74,6 @@ check_dev_null() {
 
 export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
 if [ ! -z "$VIRTUALENV" ]; then
-    . "$VIRTUALENV/bin/activate"
     export PATH="$VIRTUALENV/bin:$PATH"
     CELERYD="$VIRTUALENV/bin/$CELERYD"
 fi
@@ -69,45 +81,45 @@ fi
 
 case "$1" in
   start)
-	check_dev_null
-	log_daemon_msg "Starting celery task worker server" "celeryd"
-	if start-stop-daemon --start --quiet --oknodo --pidfile $CELERYD_PID_FILE --exec $CELERYD -- $CELERYD_OPTS; then
-	    log_end_msg 0
-	else
-	    log_end_msg 1
-	fi
-	;;
+    check_dev_null
+    log_daemon_msg "Starting celery task worker server" "celeryd"
+    if start-stop-daemon --start --quiet --oknodo --pidfile $CELERYD_PID_FILE --exec $CELERYD -- $CELERYD_OPTS; then
+        log_end_msg 0
+    else
+        log_end_msg 1
+    fi
+    ;;
   stop)
-	log_daemon_msg "Stopping celery task worker server" "celeryd"
-	if start-stop-daemon --stop --quiet --oknodo --pidfile $CELERYD_PID_FILE; then log_end_msg 0
-	else
-	    log_end_msg 1
-	fi
-	;;
+    log_daemon_msg "Stopping celery task worker server" "celeryd"
+    if start-stop-daemon --stop --quiet --oknodo --pidfile $CELERYD_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 task worker server" "celeryd"
-	start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $CELERYD_PID_FILE
-	check_dev_null log_end_msg
-	if start-stop-daemon --start --quiet --oknodo --pidfile $CELERYD_PID_FILE --exec $CELERYD -- $CELERYD_OPTS; then
-	    log_end_msg 0
-	else
-	    log_end_msg 1
-	fi
-	;;
+    log_daemon_msg "Restarting celery task worker server" "celeryd"
+    start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $CELERYD_PID_FILE
+    check_dev_null log_end_msg
+    if start-stop-daemon --start --quiet --oknodo --pidfile $CELERYD_PID_FILE --exec $CELERYD -- $CELERYD_OPTS; then
+        log_end_msg 0
+    else
+        log_end_msg 1
+    fi
+    ;;
 
   try-restart)
-	log_daemon_msg "Restarting celery task worker server" "celeryd"
-	set +e
-	start-stop-daemon --stop --quiet --retry 30 --pidfile $CELERYD_PID_FILE
-	RET="$?"
-	set -e
-	case $RET in
-	    0)
+    log_daemon_msg "Restarting celery task worker server" "celeryd"
+    set +e
+    start-stop-daemon --stop --quiet --retry 30 --pidfile $CELERYD_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 $CELERYD_PID_FILE --exec $CELERYD -- $CELERYD_OPTS; then