Mercurial > kallithea
comparison init.d/celeryd @ 501:207f5f4d3f93
created folder for init.d scripts
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Thu, 23 Sep 2010 02:55:43 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
500:5a650ddd50ab | 501:207f5f4d3f93 |
---|---|
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 # | |
8 # :Configuration file: /etc/default/celeryd | |
9 # | |
10 # To configure celeryd you probably need to tell it where to chdir. | |
11 # | |
12 # EXAMPLE CONFIGURATION | |
13 # ===================== | |
14 # | |
15 # this is an example configuration for a Python project: | |
16 # | |
17 # /etc/default/celeryd: | |
18 # | |
19 # # Where to chdir at start. | |
20 # CELERYD_CHDIR="/opt/Myproject/" | |
21 # | |
22 # # Extra arguments to celeryd | |
23 # CELERYD_OPTS="--time-limit 300" | |
24 # | |
25 # # Name of the celery config module.# | |
26 # CELERY_CONFIG_MODULE="celeryconfig" | |
27 # | |
28 # EXAMPLE DJANGO CONFIGURATION | |
29 # ============================ | |
30 # | |
31 # # Where the Django project is. | |
32 # CELERYD_CHDIR="/opt/Project/" | |
33 # | |
34 # # Name of the projects settings module. | |
35 # DJANGO_SETTINGS_MODULE="settings" | |
36 # | |
37 # # Path to celeryd | |
38 # CELERYD="/opt/Project/manage.py celeryd" | |
39 # | |
40 # AVAILABLE OPTIONS | |
41 # ================= | |
42 # | |
43 # * CELERYD_OPTS | |
44 # Additional arguments to celeryd, see ``celeryd --help`` for a list. | |
45 # | |
46 # * CELERYD_CHDIR | |
47 # Path to chdir at start. Default is to stay in the current directory. | |
48 # | |
49 # * CELERYD_PIDFILE | |
50 # Full path to the pidfile. Default is /var/run/celeryd.pid. | |
51 # | |
52 # * CELERYD_LOGFILE | |
53 # Full path to the celeryd logfile. Default is /var/log/celeryd.log | |
54 # | |
55 # * CELERYD_LOG_LEVEL | |
56 # Log level to use for celeryd. Default is INFO. | |
57 # | |
58 # * CELERYD | |
59 # Path to the celeryd program. Default is ``celeryd``. | |
60 # You can point this to an virtualenv, or even use manage.py for django. | |
61 # | |
62 # * CELERYD_USER | |
63 # User to run celeryd as. Default is current user. | |
64 # | |
65 # * CELERYD_GROUP | |
66 # Group to run celeryd as. Default is current user. | |
67 | |
68 | |
69 ### BEGIN INIT INFO | |
70 # Provides: celeryd | |
71 # Required-Start: $network $local_fs $remote_fs | |
72 # Required-Stop: $network $local_fs $remote_fs | |
73 # Default-Start: 2 3 4 5 | |
74 # Default-Stop: 0 1 6 | |
75 # Short-Description: celery task worker daemon | |
76 ### END INIT INFO | |
77 | |
78 set -e | |
79 CELERYD_CHDIR="/opt/Myproject/" | |
80 CELERYD_PID_FILE="/var/run/celeryd.pid" | |
81 CELERYD_LOG_FILE="/var/log/celeryd.log" | |
82 CELERYD_LOG_LEVEL="DEBUG" | |
83 DEFAULT_CELERYD="/home/v-env/celeryd" | |
84 | |
85 # /etc/init.d/ssh: start and stop the celery task worker daemon. | |
86 | |
87 if test -f /etc/default/celeryd; then | |
88 . /etc/default/celeryd | |
89 fi | |
90 | |
91 CELERYD=${CELERYD:-$DEFAULT_CELERYD} | |
92 | |
93 export CELERY_LOADER | |
94 | |
95 . /lib/lsb/init-functions | |
96 | |
97 CELERYD_OPTS="$CELERYD_OPTS -f $CELERYD_LOG_FILE -l $CELERYD_LOG_LEVEL" | |
98 | |
99 if [ -n "$2" ]; then | |
100 CELERYD_OPTS="$CELERYD_OPTS $2" | |
101 fi | |
102 | |
103 # Extra start-stop-daemon options, like user/group. | |
104 if [ -n "$CELERYD_USER" ]; then | |
105 DAEMON_OPTS="$DAEMON_OPTS --chuid $CELERYD_USER" | |
106 fi | |
107 if [ -n "$CELERYD_GROUP" ]; then | |
108 DAEMON_OPTS="$DAEMON_OPTS --group $CELERYD_GROUP" | |
109 fi | |
110 | |
111 if [ -n "$CELERYD_CHDIR" ]; then | |
112 DAEMON_OPTS="$DAEMON_OPTS --chdir $CELERYD_CHDIR" | |
113 fi | |
114 | |
115 | |
116 # Are we running from init? | |
117 run_by_init() { | |
118 ([ "$previous" ] && [ "$runlevel" ]) || [ "$runlevel" = S ] | |
119 } | |
120 | |
121 | |
122 check_dev_null() { | |
123 if [ ! -c /dev/null ]; then | |
124 if [ "$1" = log_end_msg ]; then | |
125 log_end_msg 1 || true | |
126 fi | |
127 if ! run_by_init; then | |
128 log_action_msg "/dev/null is not a character device!" | |
129 fi | |
130 exit 1 | |
131 fi | |
132 } | |
133 | |
134 | |
135 export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" | |
136 | |
137 | |
138 stop_worker () { | |
139 cmd="start-stop-daemon --stop \ | |
140 --quiet \ | |
141 $* \ | |
142 --pidfile $CELERYD_PID_FILE" | |
143 if $cmd; then | |
144 log_end_msg 0 | |
145 else | |
146 log_end_msg 1 | |
147 fi | |
148 } | |
149 | |
150 start_worker () { | |
151 cmd="start-stop-daemon --start $DAEMON_OPTS \ | |
152 --quiet \ | |
153 --oknodo \ | |
154 --background \ | |
155 --make-pidfile \ | |
156 $* \ | |
157 --pidfile $CELERYD_PID_FILE | |
158 --exec $CELERYD -- $CELERYD_OPTS" | |
159 if $cmd; then | |
160 log_end_msg 0 | |
161 else | |
162 log_end_msg 1 | |
163 fi | |
164 } | |
165 | |
166 | |
167 | |
168 case "$1" in | |
169 start) | |
170 check_dev_null | |
171 log_daemon_msg "Starting celery task worker server" "celeryd" | |
172 start_worker | |
173 ;; | |
174 stop) | |
175 log_daemon_msg "Stopping celery task worker server" "celeryd" | |
176 stop_worker --oknodo | |
177 ;; | |
178 | |
179 reload|force-reload) | |
180 echo "Use start+stop" | |
181 ;; | |
182 | |
183 restart) | |
184 log_daemon_msg "Restarting celery task worker server" "celeryd" | |
185 stop_worker --oknodo --retry 30 | |
186 check_dev_null log_end_msg | |
187 start_worker | |
188 ;; | |
189 | |
190 try-restart) | |
191 log_daemon_msg "Restarting celery task worker server" "celeryd" | |
192 set +e | |
193 stop_worker --retry 30 | |
194 RET="$?" | |
195 set -e | |
196 case $RET in | |
197 0) | |
198 # old daemon stopped | |
199 check_dev_null log_end_msg | |
200 start_worker | |
201 ;; | |
202 1) | |
203 # daemon not running | |
204 log_progress_msg "(not running)" | |
205 log_end_msg 0 | |
206 ;; | |
207 *) | |
208 # failed to stop | |
209 log_progress_msg "(failed to stop)" | |
210 log_end_msg 1 | |
211 ;; | |
212 esac | |
213 ;; | |
214 | |
215 status) | |
216 status_of_proc -p $CELERYD_PID_FILE $CELERYD celeryd && exit 0 || exit $? | |
217 ;; | |
218 | |
219 *) | |
220 log_action_msg "Usage: /etc/init.d/celeryd {start|stop|force-reload|restart|try-restart|status}" | |
221 exit 1 | |
222 esac | |
223 | |
224 exit 0 |