forked from celery/celery
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added generic celerybeat and celeryevcam init scripts
- Loading branch information
Showing
2 changed files
with
423 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,206 @@ | ||
#!/bin/bash -e | ||
# ========================================================= | ||
# celerybeat - Starts the Celery periodic task scheduler. | ||
# ========================================================= | ||
# | ||
# :Usage: /etc/init.d/celerybeat {start|stop|force-reload|restart|try-restart|status} | ||
# | ||
# :Configuration file: /etc/default/celerybeat or /etc/default/celeryd | ||
# | ||
# EXAMPLE CONFIGURATION | ||
# ===================== | ||
# | ||
# this is an example configuration for a Python project: | ||
# | ||
# /etc/default/celeryd: | ||
# | ||
# # Where to chdir at start. | ||
# CELERYD_CHDIR="/opt/Myproject/" | ||
# | ||
# # Extra arguments to celeryd | ||
# CELERYD_OPTS="--time-limit=300" | ||
# | ||
# # Extra arguments to celerybeat | ||
# CELERYBEAT_OPTS="--schedule=/var/run/celerybeat-schedule" | ||
# | ||
# # Name of the celery config module.# | ||
# CELERY_CONFIG_MODULE="celeryconfig" | ||
# | ||
# EXAMPLE DJANGO CONFIGURATION | ||
# ============================ | ||
# | ||
# # Where the Django project is. | ||
# CELERYD_CHDIR="/opt/Project/" | ||
# | ||
# # Name of the projects settings module. | ||
# export DJANGO_SETTINGS_MODULE="settings" | ||
# | ||
# # Path to celeryd | ||
# CELERYD="/opt/Project/manage.py celeryd" | ||
# | ||
# # Path to celerybeat | ||
# CELERYBEAT="/opt/Project/manage.py" | ||
# | ||
# # Extra arguments to celerybeat | ||
# CELERYBEAT_OPTS="celerybeat --schedule=/var/run/celerybeat-schedule" | ||
# | ||
# AVAILABLE OPTIONS | ||
# ================= | ||
# | ||
# * CELERYBEAT_OPTS | ||
# Additional arguments to celerybeat, see `celerybeat --help` for a | ||
# list. | ||
# | ||
# * CELERYBEAT_PID_FILE | ||
# Full path to the pidfile. Default is /var/run/celeryd.pid. | ||
# | ||
# * CELERYBEAT_LOG_FILE | ||
# Full path to the celeryd logfile. Default is /var/log/celeryd.log | ||
# | ||
# * CELERYBEAT_LOG_LEVEL | ||
# Log level to use for celeryd. Default is INFO. | ||
# | ||
# * CELERYBEAT | ||
# Path to the celeryd program. Default is `celeryd`. | ||
# You can point this to an virtualenv, or even use manage.py for django. | ||
# | ||
# * CELERYBEAT_USER | ||
# User to run celeryd as. Default is current user. | ||
# | ||
# * CELERYBEAT_GROUP | ||
# Group to run celeryd as. Default is current user. | ||
# | ||
# * VIRTUALENV | ||
# Full path to the virtualenv environment to activate. Default is none. | ||
|
||
### BEGIN INIT INFO | ||
# Provides: celerybeat | ||
# Required-Start: $network $local_fs $remote_fs | ||
# Required-Stop: $network $local_fs $remote_fs | ||
# Default-Start: 2 3 4 5 | ||
# Default-Stop: 0 1 6 | ||
# Short-Description: celery periodic task scheduler | ||
### END INIT INFO | ||
|
||
set -e | ||
|
||
DEFAULT_PID_FILE="/var/run/celerybeat.pid" | ||
DEFAULT_LOG_FILE="/var/log/celerybeat.log" | ||
DEFAULT_LOG_LEVEL="INFO" | ||
DEFAULT_CELERYBEAT="celerybeat" | ||
|
||
# /etc/init.d/ssh: start and stop the celery task worker daemon. | ||
|
||
if test -f /etc/default/celeryd; then | ||
. /etc/default/celeryd | ||
fi | ||
|
||
if test -f /etc/default/celerybeat; then | ||
. /etc/default/celerybeat | ||
fi | ||
|
||
CELERYBEAT=${CELERYBEAT:-$DEFAULT_CELERYBEAT} | ||
CELERYBEAT_PID_FILE=${CELERYBEAT_PID_FILE:-${CELERYBEAT_PIDFILE:-$DEFAULT_PID_FILE}} | ||
CELERYBEAT_LOG_FILE=${CELERYBEAT_LOG_FILE:-${CELERYBEAT_LOGFILE:-$DEFAULT_LOG_FILE}} | ||
CELERYBEAT_LOG_LEVEL=${CELERYBEAT_LOG_LEVEL:-${CELERYBEAT_LOGLEVEL:-$DEFAULT_LOG_LEVEL}} | ||
|
||
export CELERY_LOADER | ||
|
||
CELERYBEAT_OPTS="$CELERYBEAT_OPTS -f $CELERYBEAT_LOG_FILE -l $CELERYBEAT_LOG_LEVEL" | ||
|
||
if [ -n "$2" ]; then | ||
CELERYBEAT_OPTS="$CELERYBEAT_OPTS $2" | ||
fi | ||
|
||
# Extra start-stop-daemon options, like user/group. | ||
if [ -n "$CELERYBEAT_USER" ]; then | ||
DAEMON_OPTS="$DAEMON_OPTS --uid $CELERYBEAT_USER" | ||
fi | ||
if [ -n "$CELERYBEAT_GROUP" ]; then | ||
DAEMON_OPTS="$DAEMON_OPTS --gid $CELERYBEAT_GROUP" | ||
fi | ||
|
||
CELERYBEAT_CHDIR=${CELERYBEAT_CHDIR:-$CELERYD_CHDIR} | ||
if [ -n "$CELERYBEAT_CHDIR" ]; then | ||
DAEMON_OPTS="$DAEMON_OPTS --workdir $CELERYBEAT_CHDIR" | ||
fi | ||
|
||
|
||
check_dev_null() { | ||
if [ ! -c /dev/null ]; then | ||
echo "/dev/null is not a character device!" | ||
exit 1 | ||
fi | ||
} | ||
|
||
|
||
export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" | ||
|
||
|
||
wait_pid () { | ||
pid=$1 | ||
forever=1 | ||
i=0 | ||
while [ $forever -gt 0 ]; do | ||
kill -0 $pid 1>/dev/null 2>&1 | ||
if [ ! $? ]; then | ||
echo "OK" | ||
forever=0 | ||
else | ||
kill -TERM "$pid" | ||
i=$((i + 1)) | ||
if [ $i -gt 60 ]; then | ||
echo "ERROR" | ||
echo "Timed out while stopping (30s)" | ||
forever=0 | ||
else | ||
sleep 0.5 | ||
fi | ||
fi | ||
done | ||
} | ||
|
||
|
||
stop_beat () { | ||
echo -n "Stopping celerybeat... " | ||
if [ -f "$CELERYBEAT_PID_FILE" ]; then | ||
wait_pid $(cat "$CELERYBEAT_PID_FILE") | ||
else | ||
echo "NOT RUNNING" | ||
fi | ||
} | ||
|
||
start_beat () { | ||
echo "Starting celerybeat..." | ||
if [ -n "$VIRTUALENV" ]; then | ||
source $VIRTUALENV/bin/activate | ||
fi | ||
$CELERYBEAT $CELERYBEAT_OPTS $DAEMON_OPTS --detach \ | ||
--pidfile="$CELERYBEAT_PID_FILE" | ||
} | ||
|
||
|
||
|
||
case "$1" in | ||
start) | ||
check_dev_null | ||
start_beat | ||
;; | ||
stop) | ||
stop_beat | ||
;; | ||
reload|force-reload) | ||
echo "Use start+stop" | ||
;; | ||
restart) | ||
echo "Restarting celery periodic task scheduler" | ||
stop_beat | ||
start_beat | ||
;; | ||
|
||
*) | ||
echo "Usage: /etc/init.d/celerybeat {start|stop|restart}" | ||
exit 1 | ||
esac | ||
|
||
exit 0 |
Oops, something went wrong.