Bladeren bron

generic-init.d: Automatically create log and pidfile directories.

Closes #545.
Chris Streeter 13 jaren geleden
bovenliggende
commit
a2a54e0dcb
3 gewijzigde bestanden met toevoegingen van 37 en 2 verwijderingen
  1. 11 0
      contrib/generic-init.d/celerybeat
  2. 11 0
      contrib/generic-init.d/celeryd
  3. 15 2
      contrib/generic-init.d/celeryevcam

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

@@ -49,12 +49,23 @@ if [ -n "$2" ]; then
     CELERYBEAT_OPTS="$CELERYBEAT_OPTS $2"
 fi
 
+CELERYBEAT_LOG_DIR=`dirname $CELERYBEAT_LOG_FILE`
+CELERYBEAT_PID_DIR=`dirname $CELERYBEAT_PID_FILE`
+if [ ! -d "$CELERYBEAT_LOG_DIR" ]; then
+    mkdir -p $CELERYBEAT_LOG_DIR
+fi
+if [ ! -d "$CELERYBEAT_PID_DIR" ]; then
+    mkdir -p $CELERYBEAT_PID_DIR
+fi
+
 # Extra start-stop-daemon options, like user/group.
 if [ -n "$CELERYBEAT_USER" ]; then
     DAEMON_OPTS="$DAEMON_OPTS --uid $CELERYBEAT_USER"
+    chown "$CELERYBEAT_USER" $CELERYBEAT_LOG_DIR $CELERYBEAT_PID_DIR
 fi
 if [ -n "$CELERYBEAT_GROUP" ]; then
     DAEMON_OPTS="$DAEMON_OPTS --gid $CELERYBEAT_GROUP"
+    chown ":$CELERYBEAT_GROUP" $CELERYBEAT_LOG_DIR $CELERYBEAT_PID_DIR
 fi
 
 CELERYBEAT_CHDIR=${CELERYBEAT_CHDIR:-$CELERYD_CHDIR}

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

@@ -48,12 +48,23 @@ if [ -n "$2" ]; then
     CELERYD_OPTS="$CELERYD_OPTS $2"
 fi
 
+CELERYD_LOG_DIR=`dirname $CELERYD_LOG_FILE`
+CELERYD_PID_DIR=`dirname $CELERYD_PID_FILE`
+if [ ! -d "$CELERYD_LOG_DIR" ]; then
+    mkdir -p $CELERYD_LOG_DIR
+fi
+if [ ! -d "$CELERYD_PID_DIR" ]; then
+    mkdir -p $CELERYD_PID_DIR
+fi
+
 # Extra start-stop-daemon options, like user/group.
 if [ -n "$CELERYD_USER" ]; then
     DAEMON_OPTS="$DAEMON_OPTS --uid=$CELERYD_USER"
+    chown "$CELERYD_USER" $CELERYD_LOG_DIR $CELERYD_PID_DIR
 fi
 if [ -n "$CELERYD_GROUP" ]; then
     DAEMON_OPTS="$DAEMON_OPTS --gid=$CELERYD_GROUP"
+    chown ":$CELERYD_GROUP" $CELERYD_LOG_DIR $CELERYD_PID_DIR
 fi
 
 if [ -n "$CELERYD_CHDIR" ]; then

+ 15 - 2
contrib/generic-init.d/celeryevcam

@@ -1,4 +1,4 @@
-#!/bin/bash -e
+#!/bin/bash
 # ============================================
 #  celeryd - Starts the Celery worker daemon.
 # ============================================
@@ -86,7 +86,9 @@
 # Short-Description: celery event snapshots
 ### END INIT INFO
 
-set -e
+# Cannot use set -e/bash -e since the kill -0 command will abort
+# abnormally in the absence of a valid process ID.
+#set -e
 
 DEFAULT_PID_FILE="/var/run/celeryev.pid"
 DEFAULT_LOG_FILE="/var/log/celeryev.log"
@@ -121,12 +123,23 @@ if [ -n "$2" ]; then
     CELERYEV_OPTS="$CELERYEV_OPTS $2"
 fi
 
+CELERYEV_LOG_DIR=`dirname $CELERYEV_LOG_FILE`
+CELERYEV_PID_DIR=`dirname $CELERYEV_PID_FILE`
+if [ ! -d "$CELERYEV_LOG_DIR" ]; then
+    mkdir -p $CELERYEV_LOG_DIR
+fi
+if [ ! -d "$CELERYEV_PID_DIR" ]; then
+    mkdir -p $CELERYEV_PID_DIR
+fi
+
 # Extra start-stop-daemon options, like user/group.
 if [ -n "$CELERYEV_USER" ]; then
     DAEMON_OPTS="$DAEMON_OPTS --uid $CELERYEV_USER"
+    chown "$CELERYEV_USER" $CELERYBEAT_LOG_DIR $CELERYEV_PID_DIR
 fi
 if [ -n "$CELERYEV_GROUP" ]; then
     DAEMON_OPTS="$DAEMON_OPTS --gid $CELERYEV_GROUP"
+    chown "$CELERYEV_GROUP" $CELERYBEAT_LOG_DIR $CELERYEV_PID_DIR
 fi
 
 if [ -n "$CELERYEV_CHDIR" ]; then