使用supervisor守护celery进程
系统:ubuntu 16.10
celery 无法自己守护进程,那么我们需要在后台守护的时候,可以使用官方的方法 Celery 4.0.2 documentation-Daemonization ,可以可以采用supervisor.
- 安装supervisor:
apt-get install supervisor
- 在 /etc/supervisor.conf.d 创建celery.conf:
[program:celery] # 启动命令入口 command=/var/www/newweb/venv/bin/celery worker -A celery_worker.celery --loglevel=info # 命令程序所在目录 directory=/var/www/newweb/ # 运行命令的用户名 user=root autostart=true autorestart=true # 日志地址 stdout_logfile=/var/log/newymw2.0/supervisor/newymw2.0_celery.log
- 开启suprvisor:
service supervisor start
- 加载supervisor配置文件:
supervisorctl reload
- 启动supervisor要守护的进程:
# 比如:上面我要守护的进程是celery (celery.conf: [program:celery]) supervisorctl start celery
注意:
在执行的过程中,如果出现错误:
error: <class 'socket.error'>, [Errno 2] No such file or directory: file: /usr/lib/python2.7/socket.py line: 22
unix:///var/run/supervisor.sock no such file
supervisor>
则需要检查 /etc/supervisor.conf.d 下的配置文件是否有问题,如果有任何问题,都无法正常启动并守护该进程.
更改过文件之后,要重新执行一次上述几个命令.
可以通过 supervisorctl status
查看状态.