Browse Source

Remove extra/centos init scripts: Use generic-init.d Cloes #1895

Ask Solem 9 years ago
parent
commit
516bc98f22

+ 0 - 239
extra/centos/celerybeat

@@ -1,239 +0,0 @@
-#!/bin/sh
-# ============================================
-#  celerybeat - Starts the Celery periodic task scheduler.
-# ============================================
-#
-# :Usage: /etc/init.d/celerybeat {start|stop|restart|status}
-# :Configuration file: /etc/sysconfig/celerybeat
-#
-# See http://docs.celeryproject.org/en/latest/tutorials/daemonizing.html
-
-### 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 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/celerybeat /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.
-
-# If we're invoked via SysV-style runlevel scripts we need to follow the 
-# link from rcX.d before working out the script name.
-if [[ `dirname $0` == /etc/rc*.d ]]; then
-    target="$(readlink $0)"
-else
-    target=$0
-fi
-
-prog="$(basename $target)"
-
-# Source the centos service helper functions
-source /etc/init.d/functions
-# NOTE: "set -e" does not work with the above functions,
-# which use non-zero return codes as non-error return conditions
-
-# some commands work asyncronously, so we'll wait this many seconds
-SLEEP_SECONDS=5
-
-DEFAULT_PID_FILE="/var/run/celery/$prog.pid"
-DEFAULT_LOG_FILE="/var/log/celery/$prog.log"
-DEFAULT_LOG_LEVEL="INFO"
-DEFAULT_NODES="celery"
-
-CELERY_DEFAULTS=${CELERY_DEFAULTS:-"/etc/sysconfig/$prog"}
-
-test -f "$CELERY_DEFAULTS" && . "$CELERY_DEFAULTS"
-
-# Set CELERY_CREATE_DIRS to always create log/pid dirs.
-CELERY_CREATE_DIRS=${CELERY_CREATE_DIRS:-0}
-CELERY_CREATE_RUNDIR=$CELERY_CREATE_DIRS
-CELERY_CREATE_LOGDIR=$CELERY_CREATE_DIRS
-if [ -z "$CELERYBEAT_PID_FILE" ]; then
-    CELERYBEAT_PID_FILE="$DEFAULT_PID_FILE"
-    CELERY_CREATE_RUNDIR=1
-fi
-if [ -z "$CELERYBEAT_LOG_FILE" ]; then
-    CELERYBEAT_LOG_FILE="$DEFAULT_LOG_FILE"
-    CELERY_CREATE_LOGDIR=1
-fi
-
-CELERYBEAT_LOG_LEVEL=${CELERYBEAT_LOG_LEVEL:-${CELERYBEAT_LOGLEVEL:-$DEFAULT_LOG_LEVEL}}
-CELERYBEAT=${CELERYBEAT:-"${CELERY_BIN} beat"}
-CELERYBEAT=${CELERYBEAT:-$DEFAULT_CELERYBEAT}
-CELERYBEAT_NODES=${CELERYBEAT_NODES:-$DEFAULT_NODES}
-
-# This is used to change how Celery loads in the configs.  It does not need to
-# be set to be run.
-export CELERY_LOADER
-
-if [ -n "$2" ]; then
-    CELERYBEAT_OPTS="$CELERYBEAT_OPTS $2"
-fi
-
-CELERYBEAT_OPTS=${CELERYBEAT_OPTS:-"--app=$CELERY_APP"}
-CELERYBEAT_LOG_DIR=`dirname $CELERYBEAT_LOG_FILE`
-CELERYBEAT_PID_DIR=`dirname $CELERYBEAT_PID_FILE`
-
-# 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
-
-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 75  # EX_TEMPFAIL
-    fi
-}
-
-
-maybe_die() {
-    if [ $? -ne 0 ]; then
-        echo "Exiting: $* (errno $?)"
-        exit 77  # EX_NOPERM
-    fi
-}
-
-create_default_dir() {
-    if [ ! -d "$1" ]; then
-        echo "- Creating default directory: '$1'"
-        mkdir -p "$1"
-        maybe_die "Couldn't create directory $1"
-        echo "- Changing permissions of '$1' to 02755"
-        chmod 02755 "$1"
-        maybe_die "Couldn't change permissions for $1"
-        if [ -n "$CELERYBEAT_USER" ]; then
-            echo "- Changing owner of '$1' to '$CELERYBEAT_USER'"
-            chown "$CELERYBEAT_USER" "$1"
-            maybe_die "Couldn't change owner of $1"
-        fi
-        if [ -n "$CELERYBEAT_GROUP" ]; then
-            echo "- Changing group of '$1' to '$CELERYBEAT_GROUP'"
-            chgrp "$CELERYBEAT_GROUP" "$1"
-            maybe_die "Couldn't change group of $1"
-        fi
-    fi
-}
-
-
-check_paths() {
-    if [ $CELERY_CREATE_LOGDIR -eq 1 ]; then
-        create_default_dir "$CELERYBEAT_LOG_DIR"
-    fi
-    if [ $CELERY_CREATE_RUNDIR -eq 1 ]; then
-        create_default_dir "$CELERYBEAT_PID_DIR"
-    fi
-}
-
-create_paths() {
-    create_default_dir "$CELERYBEAT_LOG_DIR"
-    create_default_dir "$CELERYBEAT_PID_DIR"
-}
-
-export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
-
-stop() {
-    [[ ! -f "$CELERYBEAT_PID_FILE" ]] && echo "$prog is stopped" && return 0
- 
-    local one_failed=
-    echo -n $"Stopping $prog: "
-
-    # 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 "$CELERYBEAT_PID_FILE" -d "$SLEEP_SECONDS" $prog || one_failed=true
-    echo
-
-    [[ "$one_failed" ]] && return 1 || return 0
-}
-
-start() {
-    echo -n $"Starting $prog: "
-
-    # If Celery is already running, bail out
-    if [[ -f "$CELERYBEAT_PID_FILE" ]]; then
-        echo -n "$prog is already running. Use 'restart'."
-        failure
-        echo
-        return 1
-    fi
-
-    $CELERYBEAT $CELERYBEAT_OPTS $DAEMON_OPTS --detach         \
-                         --pidfile="$CELERYBEAT_PID_FILE"      \
-                         --logfile="$CELERYBEAT_LOG_FILE"      \
-                         --loglevel="$CELERYBEAT_LOG_LEVEL"
-
-    if [[ "$?" == "0" ]]; then
-        # Sleep a few seconds to give Celery a chance to initialize itself.
-        # This is useful to prevent scripts following this one from trying to
-        # use Celery (or its pid files) too early.
-        sleep $SLEEP_SECONDS
-        if [[ -f "$CELERYBEAT_PID_FILE" ]]; then
-            success
-            echo
-            return 0
-        else  # celerybeat succeeded but no pid files found
-            failure
-        fi
-    else  # celerybeat did not succeed
-        failure
-    fi
-    echo
-    return 1
-}
-
-check_status() {
-    status -p "$CELERYBEAT_PID_FILE" $"$prog" || return 1
-    return 0
-}
-
-case "$1" in
-    start)
-        check_dev_null
-        check_paths
-        start
-    ;;
-
-    stop)
-        check_dev_null
-        check_paths
-        stop
-    ;;
-
-    status)
-        check_status
-    ;;
-
-    restart)
-        check_dev_null
-        check_paths
-        stop && start
-    ;;
-
-    *)
-        echo "Usage: /etc/init.d/$prog {start|stop|restart|status}"
-        exit 3
-    ;;
-esac
-
-exit $?

+ 0 - 15
extra/centos/celerybeat.sysconfig

@@ -1,15 +0,0 @@
-# In CentOS, contents should be placed in the file /etc/sysconfig/celeryd
-# Available options: http://celery.readthedocs.org/en/latest/tutorials/daemonizing.html#init-script-celerybeat
-
-# Where the Django project is.
-#CELERYBEAT_CHDIR="/path/to/my_application"
-
-# Absolute or relative path to the celery program
-#CELERY_BIN="/usr/local/bin/celery"
-
-# App instance to use (value for --app argument).
-#CELERY_APP="my_application.path.to.worker"
-
-# Beat run as an unprivileged user
-#CELERYBEAT_USER="brandings"
-#CELERYBEAT_GROUP="brandings"

+ 0 - 266
extra/centos/celeryd

@@ -1,266 +0,0 @@
-#!/bin/sh
-# ============================================
-# celeryd - Starts the Celery worker daemon.
-# ============================================
-#
-# :Usage: /etc/init.d/celeryd {start|stop|restart|status}
-# :Configuration file: /etc/sysconfig/celeryd
-#
-# See http://docs.celeryproject.org/en/latest/tutorials/daemonizing.html
-
-### BEGIN INIT INFO
-# Provides:          celeryd
-# 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 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.
-
-# If we're invoked via SysV-style runlevel scripts we need to follow the
-# link from rcX.d before working out the script name.
-if [[ `dirname $0` == /etc/rc*.d ]]; then
-    target="$(readlink $0)"
-else
-    target=$0
-fi
-
-prog="$(basename $target)"
-
-# Source the centos service helper functions
-source /etc/init.d/functions
-# NOTE: "set -e" does not work with the above functions,
-# which use non-zero return codes as non-error return conditions
-
-# some commands work asyncronously, so we'll wait this many seconds
-SLEEP_SECONDS=5
-
-DEFAULT_PID_FILE="/var/run/celery/$prog-%n.pid"
-DEFAULT_LOG_FILE="/var/log/celery/$prog-%n%I.log"
-DEFAULT_LOG_LEVEL="INFO"
-DEFAULT_NODES="celery"
-DEFAULT_CELERYD="-m celery.bin.celeryd_detach"
-
-CELERY_DEFAULTS=${CELERY_DEFAULTS:-"/etc/sysconfig/$prog"}
-
-test -f "$CELERY_DEFAULTS" && . "$CELERY_DEFAULTS"
-
-# Set CELERY_CREATE_DIRS to always create log/pid dirs.
-CELERY_CREATE_DIRS=${CELERY_CREATE_DIRS:-0}
-CELERY_CREATE_RUNDIR=$CELERY_CREATE_DIRS
-CELERY_CREATE_LOGDIR=$CELERY_CREATE_DIRS
-if [ -z "$CELERYD_PID_FILE" ]; then
-    CELERYD_PID_FILE="$DEFAULT_PID_FILE"
-    CELERY_CREATE_RUNDIR=1
-fi
-if [ -z "$CELERYD_LOG_FILE" ]; then
-    CELERYD_LOG_FILE="$DEFAULT_LOG_FILE"
-    CELERY_CREATE_LOGDIR=1
-fi
-
-CELERYD_LOG_LEVEL=${CELERYD_LOG_LEVEL:-${CELERYD_LOGLEVEL:-$DEFAULT_LOG_LEVEL}}
-CELERYD_MULTI=${CELERYD_MULTI:-"${CELERY_BIN} multi"}
-CELERYD=${CELERYD:-$DEFAULT_CELERYD}
-CELERYD_NODES=${CELERYD_NODES:-$DEFAULT_NODES}
-
-# This is used to change how Celery loads in the configs.  It does not need to
-# be set to be run.
-export CELERY_LOADER
-
-if [ -n "$2" ]; then
-    CELERYD_OPTS="$CELERYD_OPTS $2"
-fi
-
-CELERYD_LOG_DIR=`dirname $CELERYD_LOG_FILE`
-CELERYD_PID_DIR=`dirname $CELERYD_PID_FILE`
-CELERYD_OPTS=${CELERYD_OPTS:-"--app=$CELERY_APP"}
-
-# Extra start-stop-daemon options, like user/group.
-if [ -n "$CELERYD_USER" ]; then
-    DAEMON_OPTS="$DAEMON_OPTS --uid=$CELERYD_USER"
-fi
-if [ -n "$CELERYD_GROUP" ]; then
-    DAEMON_OPTS="$DAEMON_OPTS --gid=$CELERYD_GROUP"
-fi
-
-if [ -n "$CELERYD_CHDIR" ]; then
-    DAEMON_OPTS="$DAEMON_OPTS --workdir=$CELERYD_CHDIR"
-fi
-
-check_dev_null() {
-    if [ ! -c /dev/null ]; then
-        echo "/dev/null is not a character device!"
-        exit 75  # EX_TEMPFAIL
-    fi
-}
-
-
-maybe_die() {
-    if [ $? -ne 0 ]; then
-        echo "Exiting: $* (errno $?)"
-        exit 77  # EX_NOPERM
-    fi
-}
-
-create_default_dir() {
-    if [ ! -d "$1" ]; then
-        echo "- Creating default directory: '$1'"
-        mkdir -p "$1"
-        maybe_die "Couldn't create directory $1"
-        echo "- Changing permissions of '$1' to 02755"
-        chmod 02755 "$1"
-        maybe_die "Couldn't change permissions for $1"
-        if [ -n "$CELERYD_USER" ]; then
-            echo "- Changing owner of '$1' to '$CELERYD_USER'"
-            chown "$CELERYD_USER" "$1"
-            maybe_die "Couldn't change owner of $1"
-        fi
-        if [ -n "$CELERYD_GROUP" ]; then
-            echo "- Changing group of '$1' to '$CELERYD_GROUP'"
-            chgrp "$CELERYD_GROUP" "$1"
-            maybe_die "Couldn't change group of $1"
-        fi
-    fi
-}
-
-
-check_paths() {
-    if [ $CELERY_CREATE_LOGDIR -eq 1 ]; then
-        create_default_dir "$CELERYD_LOG_DIR"
-    fi
-    if [ $CELERY_CREATE_RUNDIR -eq 1 ]; then
-        create_default_dir "$CELERYD_PID_DIR"
-    fi
-}
-
-create_paths() {
-    create_default_dir "$CELERYD_LOG_DIR"
-    create_default_dir "$CELERYD_PID_DIR"
-}
-
-export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
-
-
-_get_pid_files() {
-    [[ ! -d "$CELERYD_PID_DIR" ]] && return
-    echo $(ls -1 "$CELERYD_PID_DIR"/$prog-*.pid 2> /dev/null)
-}
-
-stop() {
-    local pid_files=$(_get_pid_files)
-    [[ -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 $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" $prog || one_failed=true
-        echo
-    done
-
-    [[ "$one_failed" ]] && return 1 || return 0
-}
-
-start() {
-    echo -n $"Starting $prog: "
-
-    # If Celery is already running, bail out
-    local pid_files=$(_get_pid_files)
-    if [[ "$pid_files" ]]; then
-        echo -n $"$prog is already running. Use 'restart'."
-        failure
-        echo
-        return 1
-    fi
-
-    $CELERYD_MULTI start $CELERYD_NODES $DAEMON_OPTS        \
-                         --pidfile="$CELERYD_PID_FILE"      \
-                         --logfile="$CELERYD_LOG_FILE"      \
-                         --loglevel="$CELERYD_LOG_LEVEL"    \
-                         --cmd="$CELERYD"                   \
-                         --quiet                            \
-                         $CELERYD_OPTS
-
-    if [[ "$?" == "0" ]]; then
-        # Sleep a few seconds to give Celery a chance to initialize itself.
-        # This is useful to prevent scripts following this one from trying to
-        # use Celery (or its pid files) too early.
-        sleep $SLEEP_SECONDS
-        pid_files=$(_get_pid_files)
-        if [[ "$pid_files" ]]; then
-            for pid_file in $pid_files; do
-                local node=$(basename "$pid_file" .pid)
-                local pid=$(cat "$pid_file")
-                echo
-                echo -n "    $node (pid $pid):"
-                success
-            done
-            echo
-            return 0
-        else  # celeryd_multi succeeded but no pid files found
-            failure
-        fi
-    else  # celeryd_multi did not succeed
-        failure
-    fi
-    echo
-    return 1
-}
-
-check_status() {
-    local pid_files=$(_get_pid_files)
-    [[ -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" $"$prog (node $node)" || return 1  # if one node is down celeryd is down
-    done
-    return 0
-}
-
-case "$1" in
-    start)
-        check_dev_null
-        check_paths
-        start
-    ;;
-
-    stop)
-        check_dev_null
-        check_paths
-        stop
-    ;;
-
-    status)
-        check_status
-    ;;
-
-    restart)
-        check_dev_null
-        check_paths
-        stop && start
-    ;;
-
-    *)
-        echo "Usage: /etc/init.d/$prog {start|stop|restart|status}"
-        exit 3
-    ;;
-esac
-
-exit $?

+ 0 - 27
extra/centos/celeryd.sysconfig

@@ -1,27 +0,0 @@
-# In CentOS, contents should be placed in the file /etc/sysconfig/celeryd
-# Available options: http://celery.readthedocs.org/en/latest/tutorials/daemonizing.html#available-options
-
-# Names of nodes to start (space-separated)
-#CELERYD_NODES="my_application-node_1"
-
-# Where to chdir at start. This could be the root of a virtualenv.
-#CELERYD_CHDIR="/path/to/my_application"
-
-# Absolute or relative path to the celery program
-#CELERY_BIN="/usr/local/bin/celery"
-
-# App instance to use (value for --app argument).
-#CELERY_APP="my_application"
-
-# Create log/pid dirs, if they don't already exist
-#CELERY_CREATE_DIRS=1
-
-# - %n will be replaced with the first part of the nodename.
-# - %I will be replaced with the current child process index
-#   and is important when using the prefork pool to avoid race conditions.
-#CELERYD_LOG_FILE="/path/to/my_application/log/%n%I.log"
-#CELERYD_PID_FILE="/var/run/celery/%n.pid"
-
-# Workers run as an unprivileged user
-#CELERYD_USER=celery
-#CELERYD_GROUP=celery

+ 0 - 6
extra/centos/test_celerybeat.sh

@@ -1,6 +0,0 @@
-#!/bin/sh
-
-# If you make changes to the celerybeat init script,
-# you can use this test script to verify you didn't break the universe
-
-./test_service.sh celerybeat

+ 0 - 6
extra/centos/test_celeryd.sh

@@ -1,6 +0,0 @@
-#!/bin/sh
-
-# If you make changes to the celeryd init script,
-# you can use this test script to verify you didn't break the universe
-
-./test_service.sh celeryd

+ 0 - 43
extra/centos/test_service.sh

@@ -1,43 +0,0 @@
-#!/bin/sh
-
-if [ -z "$1" ]; then
-    echo 'service name is not specified'
-    exit -1
-fi
-
-SERVICE="$1"
-SERVICE_CMD="sudo /sbin/service $SERVICE"
-
-run_test() {
-    local msg="$1"
-    local cmd="$2"
-    local expected_retval="${3:-0}"
-    local n=${#msg}
-
-    echo
-    echo `printf "%$((${n}+4))s" | tr " " "#"`
-    echo "# $msg #"
-    echo `printf "%$((${n}+4))s" | tr " " "#"`
-
-    $cmd
-    local retval=$?
-    if [[ "$retval" == "$expected_retval" ]]; then
-        echo "[PASSED]"
-    else
-        echo "[FAILED]"
-        echo "Exit status: $retval, but expected: $expected_retval"
-        exit $retval
-    fi
-}
-
-run_test "stop should succeed" "$SERVICE_CMD stop" 0
-run_test "status on a stopped service should return 1" "$SERVICE_CMD status" 1
-run_test "stopping a stopped celery should not fail" "$SERVICE_CMD stop" 0
-run_test "start should succeed" "$SERVICE_CMD start" 0
-run_test "status on a running service should return 0" "$SERVICE_CMD status" 0
-run_test "starting a running service should fail" "$SERVICE_CMD start" 1
-run_test "restarting a running service should succeed" "$SERVICE_CMD restart" 0
-run_test "status on a restarted service should return 0" "$SERVICE_CMD status" 0
-run_test "stop should succeed" "$SERVICE_CMD stop" 0
-
-echo "All tests passed!"