django 与主管一起在生产中启动芹菜守护进程
django start celery daemon in production with supervisor
我已经在 /etc/supervisor/conf.d/myproject-celery.conf
中为主管创建了一个 conf 文件
我的配置文件如下所示:
[program:celery]
command=/var/www/html/project/venv/bin/python /var/www/html/project/manage.py celeryd --loglevel=INFO
environment=PYTHONPATH=/var/www/html/project
directory=/var/www/html/project
user=www-data
numprocs=1
stdout_logfile=/var/log/celeryd.log
stderr_logfile=/var/log/celeryd.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs = 600
priority=998
在我的产品中,我想开始使用芹菜。为此,我正在做
supervisord -c /etc/supervisor/conf.d/myproject-celery.conf
当我这样做时它说
Error: .ini file does not include supervisord section
这里有什么问题?
看起来您在配置文件中缺少 [supervisord] 部分,但这可能是因为您没有加载主 conf 文件
见docs
您不应该使用 -c 和 conf.d 文件启动 supervisord
- 该文件夹中的文件通常会自动加载。通常,-c
是为您在普通目录以外的其他地方创建的 conf 保留的。
如果你在没有 -c 的情况下启动 supervisord,它应该加载你的 /etc/supervisor/supervisor.conf
文件
您的 conf 文件应如下所示:
; supervisor config file
[unix_http_server]
file=/var/run/supervisor.sock ; (the path to the socket file)
chmod=0700 ; sockef file mode (default 0700)
[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP)
; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket
; The [include] section can just contain the "files" setting. This
; setting can list multiple files (separated by whitespace or
; newlines). It can also contain wildcards. The filenames are
; interpreted as relative to this file. Included files *cannot*
; include files themselves.
[include]
files = /etc/supervisor/conf.d/*.conf
如您所见,它会自动加载 conf.d 文件夹中的所有 conf 文件
我已经在 /etc/supervisor/conf.d/myproject-celery.conf
我的配置文件如下所示:
[program:celery]
command=/var/www/html/project/venv/bin/python /var/www/html/project/manage.py celeryd --loglevel=INFO
environment=PYTHONPATH=/var/www/html/project
directory=/var/www/html/project
user=www-data
numprocs=1
stdout_logfile=/var/log/celeryd.log
stderr_logfile=/var/log/celeryd.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs = 600
priority=998
在我的产品中,我想开始使用芹菜。为此,我正在做
supervisord -c /etc/supervisor/conf.d/myproject-celery.conf
当我这样做时它说
Error: .ini file does not include supervisord section
这里有什么问题?
看起来您在配置文件中缺少 [supervisord] 部分,但这可能是因为您没有加载主 conf 文件
见docs
您不应该使用 -c 和 conf.d 文件启动 supervisord
- 该文件夹中的文件通常会自动加载。通常,-c
是为您在普通目录以外的其他地方创建的 conf 保留的。
如果你在没有 -c 的情况下启动 supervisord,它应该加载你的 /etc/supervisor/supervisor.conf
文件
您的 conf 文件应如下所示:
; supervisor config file
[unix_http_server]
file=/var/run/supervisor.sock ; (the path to the socket file)
chmod=0700 ; sockef file mode (default 0700)
[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP)
; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket
; The [include] section can just contain the "files" setting. This
; setting can list multiple files (separated by whitespace or
; newlines). It can also contain wildcards. The filenames are
; interpreted as relative to this file. Included files *cannot*
; include files themselves.
[include]
files = /etc/supervisor/conf.d/*.conf
如您所见,它会自动加载 conf.d 文件夹中的所有 conf 文件