Errors template now render as base extension
[flowspy] / init_scripts / celeryd
1 #!/bin/sh -e
2 # ============================================
3 #  celeryd - Starts the Celery worker daemon.
4 # ============================================
5 #
6 # :Usage: /etc/init.d/celeryd {start|stop|force-reload|restart|try-restart|status}
7 # :Configuration file: /etc/default/celeryd
8 #
9 # See http://docs.celeryq.org/en/latest/cookbook/daemonizing.html#init-script-celeryd
10
11
12 ### BEGIN INIT INFO
13 # Provides:          celeryd
14 # Required-Start:    $network $local_fs $remote_fs
15 # Required-Stop:     $network $local_fs $remote_fs
16 # Default-Start:     2 3 4 5
17 # Default-Stop:      0 1 6
18 # Short-Description: celery task worker daemon
19 ### END INIT INFO
20
21 #set -e
22
23 DEFAULT_PID_FILE="/var/run/celeryd@%n.pid"
24 DEFAULT_LOG_FILE="/var/log/celeryd@%n.log"
25 DEFAULT_LOG_LEVEL="INFO"
26 DEFAULT_NODES="celery"
27 DEFAULT_CELERYD="-m celery.bin.celeryd_detach"
28
29 # /etc/init.d/celeryd: start and stop the celery task worker daemon.
30
31 CELERY_DEFAULTS=${CELERY_DEFAULTS:-"/etc/default/celeryd"}
32
33 test -f "$CELERY_DEFAULTS" && . "$CELERY_DEFAULTS"
34 if [ -f "/etc/default/celeryd" ]; then
35     . /etc/default/celeryd
36 fi
37
38 CELERYD_PID_FILE=${CELERYD_PID_FILE:-${CELERYD_PIDFILE:-$DEFAULT_PID_FILE}}
39 CELERYD_LOG_FILE=${CELERYD_LOG_FILE:-${CELERYD_LOGFILE:-$DEFAULT_LOG_FILE}}
40 CELERYD_LOG_LEVEL=${CELERYD_LOG_LEVEL:-${CELERYD_LOGLEVEL:-$DEFAULT_LOG_LEVEL}}
41 CELERYD_MULTI=${CELERYD_MULTI:-"celeryd-multi"}
42 CELERYD=${CELERYD:-$DEFAULT_CELERYD}
43 CELERYCTL=${CELERYCTL:="celeryctl"}
44 CELERYD_NODES=${CELERYD_NODES:-$DEFAULT_NODES}
45
46 export CELERY_LOADER
47
48 if [ -n "$2" ]; then
49     CELERYD_OPTS="$CELERYD_OPTS $2"
50 fi
51
52 CELERYD_LOG_DIR=`dirname $CELERYD_LOG_FILE`
53 CELERYD_PID_DIR=`dirname $CELERYD_PID_FILE`
54 if [ ! -d "$CELERYD_LOG_DIR" ]; then
55     mkdir -p $CELERYD_LOG_DIR
56 fi
57 if [ ! -d "$CELERYD_PID_DIR" ]; then
58     mkdir -p $CELERYD_PID_DIR
59 fi
60
61 # Extra start-stop-daemon options, like user/group.
62 if [ -n "$CELERYD_USER" ]; then
63     DAEMON_OPTS="$DAEMON_OPTS --uid=$CELERYD_USER"
64     chown "$CELERYD_USER" $CELERYD_LOG_DIR $CELERYD_PID_DIR
65 fi
66 if [ -n "$CELERYD_GROUP" ]; then
67     DAEMON_OPTS="$DAEMON_OPTS --gid=$CELERYD_GROUP"
68     chgrp "$CELERYD_GROUP" $CELERYD_LOG_DIR $CELERYD_PID_DIR
69 fi
70
71 if [ -n "$CELERYD_CHDIR" ]; then
72     DAEMON_OPTS="$DAEMON_OPTS --workdir=\"$CELERYD_CHDIR\""
73 fi
74
75
76 check_dev_null() {
77     if [ ! -c /dev/null ]; then
78         echo "/dev/null is not a character device!"
79         exit 1
80     fi
81 }
82
83
84 export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
85
86
87 stop_workers () {
88     $CELERYD_MULTI stop $CELERYD_NODES --pidfile="$CELERYD_PID_FILE"
89 }
90
91
92 start_workers () {
93     $CELERYD_MULTI start $CELERYD_NODES $DAEMON_OPTS        \
94                          --pidfile="$CELERYD_PID_FILE"      \
95                          --logfile="$CELERYD_LOG_FILE"      \
96                          --loglevel="$CELERYD_LOG_LEVEL"    \
97                          --cmd="$CELERYD"                   \
98                          $CELERYD_OPTS
99 }
100
101
102 restart_workers () {
103     $CELERYD_MULTI restart $CELERYD_NODES $DAEMON_OPTS      \
104                            --pidfile="$CELERYD_PID_FILE"    \
105                            --logfile="$CELERYD_LOG_FILE"    \
106                            --loglevel="$CELERYD_LOG_LEVEL"  \
107                            --cmd="$CELERYD"                 \
108                            $CELERYD_OPTS
109 }
110
111
112
113 case "$1" in
114     start)
115         check_dev_null
116         start_workers
117     ;;
118
119     stop)
120         check_dev_null
121         stop_workers
122     ;;
123
124     reload|force-reload)
125         echo "Use restart"
126     ;;
127
128     status)
129         $CELERYCTL status $CELERYCTL_OPTS
130     ;;
131
132     restart)
133         check_dev_null
134         restart_workers
135     ;;
136
137     try-restart)
138         check_dev_null
139         restart_workers
140     ;;
141
142     *)
143         echo "Usage: /etc/init.d/celeryd {start|stop|restart|try-restart|kill}"
144         exit 1
145     ;;
146 esac
147
148 exit 0