Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

running celery as daemon using supervisor is not working

I have a django app in which it has a celery functionality, so i can able to run the celery sucessfully like below

celery -A tasks worker --loglevel=info

but as a known fact that we need to run it as a daemon and so i have written the below celery.conf file inside /etc/supervisor/conf.d/ folder

; ==================================
;  celery worker supervisor example
; ==================================

[program:celery]
; Set full path to celery program if using virtualenv
command=/root/Envs/proj/bin/celery -A app.tasks worker --loglevel=info

user=root
environment=C_FORCE_ROOT="yes"
environment=HOME="/root",USER="root"
directory=/root/apps/proj/structure
numprocs=1
stdout_logfile=/var/log/celery/worker.log
stderr_logfile=/var/log/celery/worker.log
autostart=true
autorestart=true
startsecs=10

; Need to wait for currently executing tasks to finish at shutdown.
; Increase this if you have very long running tasks.
stopwaitsecs = 600

; When resorting to send SIGKILL to the program to terminate it
; send SIGKILL to its whole process group instead,
; taking care of its children as well.
killasgroup=true

; if rabbitmq is supervised, set its priority higher
; so it starts first
priority=998

but when i tried to update the supervisor like supervisorctl reread and supervisorctl update i was getting the message from supervisorctl status

celery                           FATAL      Exited too quickly (process log may have details)

So i went to worker.log file and seen the error message as below

Running a worker with superuser privileges when the
worker accepts messages serialized with pickle is a very bad idea!

If you really want to continue then you have to set the C_FORCE_ROOT
environment variable (but please think about this before you do).

User information: uid=0 euid=0 gid=0 egid=0

So why it was complaining about C_FORCE_ROOT even though we had set it as environment variable inside supervisor conf file ? what am i doing wrong in the above conf file ?

like image 464
Shiva Krishna Bavandla Avatar asked Jul 09 '14 09:07

Shiva Krishna Bavandla


1 Answers

I had the same problem,so I added

environment=C_FORCE_ROOT="yes" 

in my program config,but It didn't work so I used

environment=C_FORCE_ROOT="true"

it's working

like image 156
Richard wei Avatar answered Dec 09 '22 11:12

Richard wei