Ver Fonte

generic-init.d: Automatically create missing dirs. Closes #482

Ask Solem há 13 anos atrás
pai
commit
55bbcc4255
2 ficheiros alterados com 33 adições e 0 exclusões
  1. 17 0
      contrib/generic-init.d/celerybeat
  2. 16 0
      contrib/generic-init.d/celeryd

+ 17 - 0
contrib/generic-init.d/celerybeat

@@ -83,6 +83,20 @@ check_dev_null() {
     fi
 }
 
+ensure_dir() {
+    if [ -d "$1" ]; then
+        mkdir -p "$1"
+        chown $CELERYBEAT_USER:$CELERYBEAT_GROUP "$1"
+        chmod 02755 "$1"
+    fi
+}
+
+check_paths() {
+    ensure_dir "$(dirname $CELERYBEAT_PID_FILE)"
+    ensure_dir "$(dirname $CELERYBEAT_LOG_FILE)"
+}
+
+
 wait_pid () {
     pid=$1
     forever=1
@@ -130,9 +144,11 @@ start_beat () {
 case "$1" in
   start)
     check_dev_null
+    check_paths
     start_beat
     ;;
   stop)
+    check_paths
     stop_beat
     ;;
   reload|force-reload)
@@ -140,6 +156,7 @@ case "$1" in
     ;;
   restart)
     echo "Restarting celery periodic task scheduler"
+    check_paths
     stop_beat
     check_dev_null
     start_beat

+ 16 - 0
contrib/generic-init.d/celeryd

@@ -80,6 +80,18 @@ check_dev_null() {
     fi
 }
 
+ensure_dir() {
+    if [ -d "$1" ]; then
+        mkdir -p "$1"
+        chown $CELERYD_USER:$CELERYD_GROUP "$1"
+        chmod 02755 "$1"
+    fi
+}
+
+check_paths() {
+    ensure_dir "$(dirname $CELERYD_PID_FILE)"
+    ensure_dir "$(dirname $CELERYD_LOG_FILE)"
+}
 
 export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
 
@@ -113,11 +125,13 @@ restart_workers () {
 case "$1" in
     start)
         check_dev_null
+        check_paths
         start_workers
     ;;
 
     stop)
         check_dev_null
+        check_paths
         stop_workers
     ;;
 
@@ -131,11 +145,13 @@ case "$1" in
 
     restart)
         check_dev_null
+        check_paths
         restart_workers
     ;;
 
     try-restart)
         check_dev_null
+        check_paths
         restart_workers
     ;;