Guest User

Untitled

a guest
Oct 20th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.21 KB | None | 0 0
  1. #!/bin/bash -e
  2. #=======================================
  3. #
  4. # :Usage: /etc/init.d/celeryd {start|stop|force-reload|restart|try-restart|status}
  5. #
  6. # :Configuration file: /etc/default/celeryd
  7. #
  8. # To configure celeryd you probably need to tell it where to chdir.
  9. #
  10. # EXAMPLE CONFIGURATION
  11. # =====================
  12. #
  13. # this is an example configuration for a Python project:
  14. #
  15. # /etc/default/celeryd:
  16. #
  17. # # List of nodes to start
  18. CELERYD_NODES="worker1"
  19. # # ... can also be a number of workers
  20. #CELERYD_NODES=1
  21.  
  22.  
  23.  
  24. # # Name of the celery config module.#
  25. #CELERY_CONFIG_MODULE="celeryconfig"
  26. #
  27. # EXAMPLE DJANGO CONFIGURATION
  28. # ============================
  29. #
  30. # # Where the Django project is.
  31. curr_dir="`dirname $0`"
  32. CURRENT_DIR="`cd $curr_dir; pwd`"
  33.  
  34. PROJECT_HOME_DIR="$CURRENT_DIR/.."
  35.  
  36. #PROJECT_HOME_DIR='/var/boxcite/futures-dev'
  37.  
  38. CELERYD_CHDIR=$PROJECT_HOME_DIR
  39.  
  40.  
  41. CELERYD_MULTI="/usr/bin/env python $PROJECT_HOME_DIR/manage.py celeryd_multi"
  42. #echo $CELERYD_MULTI
  43. CELERYD_OPTS="--time-limit=300 --concurrency=4"
  44.  
  45. #
  46. # # Name of the projects settings module.
  47. export DJANGO_SETTINGS_MODULE="project.settings"
  48. #
  49. # # Path to celeryd
  50. CELERYD="/usr/bin/env python $PROJECT_HOME_DIR/manage.py celeryd"
  51. #
  52. # AVAILABLE OPTIONS
  53. # =================
  54. #
  55. # * CELERYD_NODES
  56. #
  57. # A space separated list of nodes, or a number describing the number of
  58. # nodes, to start
  59. #
  60. # * CELERYD_OPTS
  61. # Additional arguments to celeryd-multi, see `celeryd-multi --help`
  62. # and `celeryd --help` for help.
  63. #
  64. # * CELERYD_CHDIR
  65. # Path to chdir at start. Default is to stay in the current directory.
  66. #
  67. # * CELERYD_PIDFILE
  68. # Full path to the pidfile. Default is /var/run/celeryd.pid.
  69. #
  70. # * CELERYD_LOGFILE
  71. # Full path to the celeryd logfile. Default is /var/log/celeryd.log
  72. #
  73. # * CELERYD_LOG_LEVEL
  74. # Log level to use for celeryd. Default is INFO.
  75. #
  76. # * CELERYD
  77. # Path to the celeryd program. Default is `celeryd`.
  78. # You can point this to an virtualenv, or even use manage.py for django.
  79. #
  80. # * CELERYD_USER
  81. # User to run celeryd as. Default is current user.
  82. #
  83. # * CELERYD_GROUP
  84. # Group to run celeryd as. Default is current user.
  85.  
  86. # VARIABLE EXPANSION
  87. # ==================
  88. #
  89. # The following abbreviations will be expanded
  90. #
  91. # * %n -> node name
  92. # * %h -> host name
  93.  
  94.  
  95. ### BEGIN INIT INFO
  96. # Provides: celeryd
  97. # Required-Start: $network $local_fs $remote_fs
  98. # Required-Stop: $network $local_fs $remote_fs
  99. # Default-Start: 2 3 4 5
  100. # Default-Stop: 0 1 6
  101. # Short-Description: celery task worker daemon
  102. ### END INIT INFO
  103.  
  104. set -e
  105.  
  106.  
  107. #echo $PROJECT_HOME_DIR
  108.  
  109. #DEFAULT_PID_FILE="/var/run/celeryd@%n.pid"
  110. #DEFAULT_LOG_FILE="/var/log/celeryd@%n.log"
  111.  
  112. DEFAULT_PID_FILE="$PROJECT_HOME_DIR/logs/celeryd@%n.pid"
  113. DEFAULT_LOG_FILE="$PROJECT_HOME_DIR/logs/celeryd@%n.log"
  114. DEFAULT_CELERYD="celeryd"
  115. DEFAULT_LOG_LEVEL="INFO"
  116. DEFAULT_NODES="celery"
  117.  
  118. # /etc/init.d/celeryd: start and stop the celery task worker daemon.
  119.  
  120. #if test -f /etc/default/celeryd; then
  121. # . /etc/default/celeryd
  122. #fi
  123.  
  124. CELERYD_PID_FILE=${CELERYD_PID_FILE:-${CELERYD_PIDFILE:-$DEFAULT_PID_FILE}}
  125. CELERYD_LOG_FILE=${CELERYD_LOG_FILE:-${CELERYD_LOGFILE:-$DEFAULT_LOG_FILE}}
  126. CELERYD_LOG_LEVEL=${CELERYD_LOG_LEVEL:-${CELERYD_LOGLEVEL:-$DEFAULT_LOG_LEVEL}}
  127. CELERYD_MULTI=${CELERYD_MULTI:-"celeryd_multi"}
  128. CELERYD=${CELERYD:-$DEFAULT_CELERYD}
  129. CELERYD_NODES=${CELERYD_NODES:-$DEFAULT_NODES}
  130.  
  131. export CELERY_LOADER
  132.  
  133. if [ -n "$2" ]; then
  134. CELERYD_OPTS="$CELERYD_OPTS $2"
  135. fi
  136.  
  137. # Extra start-stop-daemon options, like user/group.
  138. if [ -n "$CELERYD_USER" ]; then
  139. DAEMON_OPTS="$DAEMON_OPTS --uid=$CELERYD_USER"
  140. fi
  141. if [ -n "$CELERYD_GROUP" ]; then
  142. DAEMON_OPTS="$DAEMON_OPTS --gid=$CELERYD_GROUP"
  143. fi
  144.  
  145. if [ -n "$CELERYD_CHDIR" ]; then
  146. DAEMON_OPTS="$DAEMON_OPTS --workdir=\"$CELERYD_CHDIR\""
  147. fi
  148.  
  149.  
  150. check_dev_null() {
  151. if [ ! -c /dev/null ]; then
  152. echo "/dev/null is not a character device!"
  153. exit 1
  154. fi
  155. }
  156.  
  157.  
  158. export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
  159.  
  160.  
  161. stop_workers () {
  162. $CELERYD_MULTI stop $CELERYD_NODES --pidfile="$CELERYD_PID_FILE"
  163. }
  164.  
  165.  
  166. start_workers () {
  167. $CELERYD_MULTI start $CELERYD_NODES $DAEMON_OPTS \
  168. --pidfile="$CELERYD_PID_FILE" \
  169. --logfile="$CELERYD_LOG_FILE" \
  170. --loglevel="$CELERYD_LOG_LEVEL" \
  171. --cmd="$CELERYD" \
  172. $CELERYD_OPTS
  173.  
  174. }
  175.  
  176.  
  177. restart_workers () {
  178. $CELERYD_MULTI restart $CELERYD_NODES $DAEMON_OPTS \
  179. --pidfile="$CELERYD_PID_FILE" \
  180. --logfile="$CELERYD_LOG_FILE" \
  181. --loglevel="$CELERYD_LOG_LEVEL" \
  182. --cmd="$CELERYD" \
  183. $CELERYD_OPTS
  184. }
  185.  
  186.  
  187.  
  188. case "$1" in
  189. start)
  190. check_dev_null
  191. start_workers
  192. ;;
  193.  
  194. stop)
  195. check_dev_null
  196. stop_workers
  197. ;;
  198.  
  199. reload|force-reload)
  200. echo "Use restart"
  201. ;;
  202.  
  203. status)
  204. celeryctl status
  205. ;;
  206.  
  207. restart)
  208. check_dev_null
  209. restart_workers
  210. ;;
  211.  
  212. try-restart)
  213. check_dev_null
  214. restart_workers
  215. ;;
  216.  
  217. *)
  218. echo "Usage: /etc/init.d/celeryd {start|stop|restart|try-restart|kill}"
  219. exit 1
  220. ;;
  221. esac
  222.  
  223. exit 0
Add Comment
Please, Sign In to add comment