celeryd.init 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. #! /bin/sh
  2. #
  3. # chkconfig: - 55 45
  4. # description: Celery worker daemon
  5. # processname: celeryd
  6. # config: /etc/sysconfig/celeryd
  7. # pidfile: /var/run/celeryd.pid
  8. #
  9. # To configure celeryd you probably need to tell it where to chdir.
  10. #
  11. # EXAMPLE CONFIGURATION
  12. # =====================
  13. #
  14. # this is an example configuration for a Python project:
  15. #
  16. # /etc/sysconfig/celeryd:
  17. #
  18. # # Where to chdir at start.
  19. # CELERYD_CHDIR="/opt/Myproject/"
  20. #
  21. # # Extra arguments to celeryd
  22. # CELERYD_OPTS="--time-limit=300"
  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. # CELERYD_CHDIR="/opt/Project/"
  32. #
  33. # # Name of the projects settings module.
  34. # export DJANGO_SETTINGS_MODULE="settings"
  35. #
  36. # # Path to celeryd
  37. # CELERYD="/opt/Project/manage.py"
  38. #
  39. # # Extra arguments to manage.py
  40. # CELERYD_OPTS="celeryd"
  41. #
  42. # AVAILABLE OPTIONS
  43. # =================
  44. #
  45. # * CELERYD_OPTS
  46. # Additional arguments to celeryd, see `celeryd --help` for a list.
  47. #
  48. # * CELERYD_CHDIR
  49. # Path to chdir at start. Default is to stay in the current directory.
  50. #
  51. # * CELERYD_PID_FILE
  52. # Full path to the pidfile. Default is /var/run/celeryd.pid.
  53. #
  54. # * CELERYD_LOG_FILE
  55. # Full path to the celeryd logfile. Default is /var/log/celeryd.log
  56. #
  57. # * CELERYD_LOG_LEVEL
  58. # Log level to use for celeryd. Default is INFO.
  59. #
  60. # * CELERYD
  61. # Path to the celeryd program. Default is `celeryd`.
  62. # You can point this to an virtualenv, or even use manage.py for django.
  63. #
  64. # * CELERYD_USER
  65. # User to run celeryd as. Default is current user.
  66. #
  67. # * CELERYD_GROUP
  68. # Group to run celeryd as. Default is current user.
  69. #
  70. # * VIRTUALENV
  71. # Full path to the virtualenv environment to activate. Default is none.
  72. #
  73. # * PYTHONPATH
  74. # A directory to add to the Python path.
  75. # Source function library.
  76. . /etc/init.d/functions
  77. if test -f /etc/sysconfig/celeryd; then
  78. . /etc/sysconfig/celeryd
  79. fi
  80. RETVAL=0
  81. DEFAULT_CELERYD="/usr/bin/celeryd"
  82. CELERYD_LOG_FILE=${CELERYD_LOG_FILE:-${CELERYD_LOGFILE:-"/var/log/celeryd.log"}}
  83. CELERYD_PID_FILE=${CELERYD_PID_FILE:-${CELERYD_PIDFILE:-"/var/run/celeryd.pid"}}
  84. CELERYD_LOG_LEVEL=${CELERYD_LOG_LEVEL:-${CELERYD_LOGLEVEL:-"INFO"}}
  85. CELERYD_USER=${CELERYD_USER:-${CELERYD_USER:-"celeryd"}}
  86. CELERYD=${CELERYD:-$DEFAULT_CELERYD}
  87. export CELERY_LOADER
  88. CELERYD_OPTS="$CELERYD_OPTS -f $CELERYD_LOG_FILE -l $CELERYD_LOG_LEVEL --pidfile=$CELERYD_PID_FILE"
  89. if [ -n "$2" ]; then
  90. CELERYD_OPTS="$CELERYD_OPTS $2"
  91. fi
  92. # Append the Django settings module to use, if specified
  93. if [ -n "$DJANGO_SETTINGS_MODULE" ]; then
  94. CELERYD_OPTS="$CELERYD_OPTS --settings=$DJANGO_SETTINGS_MODULE"
  95. fi
  96. start_worker () {
  97. echo -n $"Starting celeryd: "
  98. daemon --pidfile=$CELERYD_PID_FILE --user=$CELERYD_USER \
  99. PYTHONPATH=$PYTHONPATH:$CELERY_PYTHONPATH $CELERYD $CELERYD_OPTS 2>/dev/null &
  100. RETVAL=$?
  101. sleep 3; echo
  102. if [ -n "$VIRTUALENV" ]; then
  103. source $VIRTUALENV/bin/activate
  104. fi
  105. [ $RETVAL -eq 0 ] && touch /var/lock/subsys/celeryd
  106. }
  107. stop_worker () {
  108. echo -n $"Stopping celeryd: "
  109. killproc -p $CELERYD_PID_FILE $CELERYD 2>/dev/null
  110. RETVAL=$?
  111. sleep 3; echo
  112. if [ $RETVAL -eq 0 ]; then
  113. rm -f /var/lock/subsys/celeryd
  114. rm -f $CELERYD_PID_FILE
  115. fi
  116. }
  117. case "$1" in
  118. start)
  119. start_worker
  120. ;;
  121. stop)
  122. stop_worker
  123. ;;
  124. restart)
  125. stop_worker
  126. start_worker
  127. ;;
  128. status)
  129. status celeryd
  130. ;;
  131. *)
  132. echo $"Usage: $0 {start|stop|restart|status}"
  133. exit 1
  134. esac
  135. exit $?