|
@@ -123,6 +123,11 @@ create_paths() {
|
|
|
export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
|
|
|
|
|
|
|
|
|
+_get_pid_files() {
|
|
|
+ [[ ! -d "$CELERYD_PID_DIR" ]] && return
|
|
|
+ echo $(find "$CELERYD_PID_DIR" -name "*.pid")
|
|
|
+}
|
|
|
+
|
|
|
stop_workers () {
|
|
|
$CELERYD_MULTI stopwait $CELERYD_NODES --pidfile="$CELERYD_PID_FILE"
|
|
|
}
|
|
@@ -135,7 +140,6 @@ start_workers () {
|
|
|
--loglevel="$CELERYD_LOG_LEVEL" \
|
|
|
--cmd="$CELERYD" \
|
|
|
$CELERYD_OPTS
|
|
|
- RETVAL=$?
|
|
|
}
|
|
|
|
|
|
|
|
@@ -146,30 +150,31 @@ restart_workers () {
|
|
|
--loglevel="$CELERYD_LOG_LEVEL" \
|
|
|
--cmd="$CELERYD" \
|
|
|
$CELERYD_OPTS
|
|
|
- RETVAL=$?
|
|
|
}
|
|
|
|
|
|
-echo_status () {
|
|
|
- [[ ! -d "$CELERYD_PID_DIR" ]] && echo "celeryd is stopped" && exit 1
|
|
|
- local pid_files=$(find "$CELERYD_PID_DIR" -name "*.pid")
|
|
|
- [[ -z $pid_files ]] && echo "celeryd is stopped" && exit 1
|
|
|
- local at_least_one_running=
|
|
|
+check_status () {
|
|
|
+ local pid_files=$(_get_pid_files)
|
|
|
+ [[ -z "$pid_files" ]] && echo "celeryd is stopped" && exit 1
|
|
|
+
|
|
|
+ local one_failed=
|
|
|
for pid_file in $pid_files; do
|
|
|
- pid=$(cat "$pid_file")
|
|
|
+ local node=$(basename "$pid_file" .pid)
|
|
|
+ local pid=$(cat "$pid_file")
|
|
|
if [[ -z "$pid" ]] || [[ "${pid//[0-9]/}" ]]; then
|
|
|
echo "bad pid file ($pid_file)"
|
|
|
else
|
|
|
local failed=
|
|
|
- ps h $pid > /dev/null || failed=true # we can't use $? here because of the earlier set -e
|
|
|
+ kill -0 $pid &> /dev/null || failed=true
|
|
|
if [[ "$failed" ]]; then
|
|
|
- echo "celeryd worker (pid $pid) is stopped, but pid file exists!"
|
|
|
+ echo "celeryd (node $node) (pid $pid) is stopped, but pid file exists!"
|
|
|
+ one_failed=true
|
|
|
else
|
|
|
- echo "celeryd worker (pid $pid) is running..."
|
|
|
- at_least_one_running=true
|
|
|
+ echo "celeryd (node $node) (pid $pid) is running..."
|
|
|
fi
|
|
|
fi
|
|
|
done
|
|
|
- [[ "$at_least_one_running" ]] && RETVAL=0 || RETVAL=1
|
|
|
+
|
|
|
+ [[ "$one_failed" ]] && exit 1
|
|
|
}
|
|
|
|
|
|
|
|
@@ -191,7 +196,7 @@ case "$1" in
|
|
|
;;
|
|
|
|
|
|
status)
|
|
|
- echo_status
|
|
|
+ check_status
|
|
|
;;
|
|
|
|
|
|
restart)
|
|
@@ -218,4 +223,4 @@ case "$1" in
|
|
|
;;
|
|
|
esac
|
|
|
|
|
|
-exit $RETVAL
|
|
|
+exit 0
|