|
@@ -16,6 +16,19 @@
|
|
|
# Default-Stop: 0 1 6
|
|
|
# Short-Description: celery task worker daemon
|
|
|
### END INIT INFO
|
|
|
+#
|
|
|
+#
|
|
|
+# To implement separate init scripts, do NOT copy this script. Instead,
|
|
|
+# symlink it. I.e., if my new application, "little-worker" needs an init, I
|
|
|
+# should just use:
|
|
|
+#
|
|
|
+# ln -s /etc/init.d/celeryd /etc/init.d/little-worker
|
|
|
+#
|
|
|
+# You can then configure this by manipulating /etc/sysconfig/little-worker.
|
|
|
+#
|
|
|
+# Setting `prog` here allows you to symlink this init script, making it easy
|
|
|
+# to run multiple processes on the system.
|
|
|
+prog="$(basename $0)"
|
|
|
|
|
|
# Source the centos service helper functions
|
|
|
source /etc/init.d/functions
|
|
@@ -25,13 +38,13 @@ source /etc/init.d/functions
|
|
|
# some commands work asyncronously, so we'll wait this many seconds
|
|
|
SLEEP_SECONDS=5
|
|
|
|
|
|
-DEFAULT_PID_FILE="/var/run/celery/%n.pid"
|
|
|
-DEFAULT_LOG_FILE="/var/log/celery/%n.log"
|
|
|
+DEFAULT_PID_FILE="/var/run/celery/$prog-%n.pid"
|
|
|
+DEFAULT_LOG_FILE="/var/log/celery/$prog-%n.log"
|
|
|
DEFAULT_LOG_LEVEL="INFO"
|
|
|
DEFAULT_NODES="celery"
|
|
|
DEFAULT_CELERYD="-m celery.bin.celeryd_detach"
|
|
|
|
|
|
-CELERY_DEFAULTS=${CELERY_DEFAULTS:-"/etc/sysconfig/celeryd"}
|
|
|
+CELERY_DEFAULTS=${CELERY_DEFAULTS:-"/etc/sysconfig/$prog"}
|
|
|
|
|
|
test -f "$CELERY_DEFAULTS" && . "$CELERY_DEFAULTS"
|
|
|
|
|
@@ -132,23 +145,23 @@ export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
|
|
|
|
|
|
_get_pid_files() {
|
|
|
[[ ! -d "$CELERYD_PID_DIR" ]] && return
|
|
|
- echo $(ls -1 "$CELERYD_PID_DIR"/*.pid 2> /dev/null)
|
|
|
+ echo $(ls -1 "$CELERYD_PID_DIR"/$prog-*.pid 2> /dev/null)
|
|
|
}
|
|
|
|
|
|
stop() {
|
|
|
local pid_files=$(_get_pid_files)
|
|
|
- [[ -z "$pid_files" ]] && echo "celeryd is stopped" && return 0
|
|
|
+ [[ -z "$pid_files" ]] && echo "$prog is stopped" && return 0
|
|
|
|
|
|
local one_failed=
|
|
|
for pid_file in $pid_files; do
|
|
|
local pid=$(cat "$pid_file")
|
|
|
- echo -n $"Stopping celeryd (pid $pid): "
|
|
|
+ echo -n $"Stopping $prog (pid $pid): "
|
|
|
|
|
|
# killproc comes from 'functions' and brings three nice features:
|
|
|
# 1. sending TERM, sleeping, then sleeping more if needed, then sending KILL
|
|
|
# 2. handling 'success' and 'failure' output
|
|
|
# 3. removes stale pid files, if any remain
|
|
|
- killproc -p "$pid_file" -d "$SLEEP_SECONDS" celeryd || one_failed=true
|
|
|
+ killproc -p "$pid_file" -d "$SLEEP_SECONDS" $prog || one_failed=true
|
|
|
echo
|
|
|
done
|
|
|
|
|
@@ -156,12 +169,12 @@ stop() {
|
|
|
}
|
|
|
|
|
|
start() {
|
|
|
- echo -n $"Starting celeryd: "
|
|
|
+ echo -n $"Starting $prog: "
|
|
|
|
|
|
# If Celery is already running, bail out
|
|
|
local pid_files=$(_get_pid_files)
|
|
|
if [[ "$pid_files" ]]; then
|
|
|
- echo -n $"celeryd is already running. Use 'restart'."
|
|
|
+ echo -n $"$prog is already running. Use 'restart'."
|
|
|
failure
|
|
|
echo
|
|
|
return 1
|
|
@@ -203,10 +216,10 @@ start() {
|
|
|
|
|
|
check_status() {
|
|
|
local pid_files=$(_get_pid_files)
|
|
|
- [[ -z "$pid_files" ]] && echo "celeryd is stopped" && return 1
|
|
|
+ [[ -z "$pid_files" ]] && echo "$prog is stopped" && return 1
|
|
|
for pid_file in $pid_files; do
|
|
|
local node=$(basename "$pid_file" .pid)
|
|
|
- status -p "$pid_file" $"celeryd (node $node)" || return 1 # if one node is down celeryd is down
|
|
|
+ status -p "$pid_file" $"$prog (node $node)" || return 1 # if one node is down celeryd is down
|
|
|
done
|
|
|
return 0
|
|
|
}
|
|
@@ -235,7 +248,7 @@ case "$1" in
|
|
|
;;
|
|
|
|
|
|
*)
|
|
|
- echo "Usage: /etc/init.d/celeryd {start|stop|restart|status}"
|
|
|
+ echo "Usage: /etc/init.d/$prog {start|stop|restart|status}"
|
|
|
exit 3
|
|
|
;;
|
|
|
esac
|