läuft Sellerie als daemon mit Vorgesetzten nicht arbeiten

Habe ich eine django-app, in der es eine Sellerie-Funktionalität, so kann ich in der Lage zu laufen, den Sellerie erfolgreich wie unten

celery -A tasks worker --loglevel=info

aber als eine bekannte Tatsache, dass wir brauchen, um es zu laufen als daemon, und so habe ich geschrieben das unter celery.conf Datei in /etc/supervisor/conf.d/ Ordner

; ==================================
;  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

aber wenn ich versucht, zu aktualisieren, die Vorgesetzten wie supervisorctl reread und supervisorctl update ich war die Botschaft von supervisorctl status

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

Also ging ich zu worker.log Datei und sehen Sie die Fehlermeldung, wie unten

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

Also, warum es war, beschwerte sich über C_FORCE_ROOT obwohl wir hatten es als environment-variable inside-supervisor conf-Datei ? was mache ich falsch in der oben genannten conf-Datei ?

  • Nicht als root laufen — es sollte nicht notwendig sein. (Verwenden Sie diese mit Django — laufen als der selbe Benutzer wie dort.)
  • ja ok, wenn ich entfernt die Zeile environment=HOME="/root",USER="root" es war in Ordnung arbeiten
  • Ich hatte dieses problem mit AWS Elasticbeanstalk, mit user= "ec2-user" fixiert es für mich
Schreibe einen Kommentar