参考:http://blog.csdn.net/wawa8899/article/details/52743861
参考:http://www.cnblogs.com/mountaingeek/p/5911291.html
参考:http://www.linuxyw.com/718.html
参考:http://www.iitshare.com/supervisord-manage-process.html
参考:http://stackoverflow.com/questions/20346851/running-celery-as-root
运行生成配置文件:
[root@host /]# echo_supervisord_conf > /etc/supervisord.conf ... pkg_resources.DistributionNotFound: meld3>=0.6.5 找到supervisor-3.3.1-py2.7.egg-info/requires.txt,把文件里面meld3 >= 0.6.5注释掉,然后再执行
配置
[program:dopcelerybeat] command=python manage.py celery beat numprocs=1 directory=/path/ autostart=true startsecs=10 startretries=3 stopwaitsecs=600 killasgroup=true user=root redirect_stderr=true stdout_logfile=/path/logs/supervisord-celery-beat.log stderr_logfile=/path/logs/supervisord-celery-beat-error.log [program:dopceleryworker] command=python manage.py celery worker -l info numprocs=1 directory=/path/ autostart=true startsecs=10 startretries=3 stopwaitsecs=600 killasgroup=true user=root redirect_stderr=true stdout_logfile=/path/logs/supervisord-celery-worker.log stderr_logfile=/path/logs/supervisord-celery-worker-error.log [group:dopcelery] programs=dopcelerybeat,dopceleryworker ; priority=999 ; the relative start priority (default 999)
运行celery时报错的解决方法:
1st solution - Manually type command at terminal $ export C_FORCE_ROOT='true' 2nd solution - Edit shell configuration $ vi ~/.bashrc # add following line export C_FORCE_ROOT='true' $ source ~/.bashrc 3rd solution - Edit manage.py of Django import os if __name__ == '__main__': os.environ.setdefault('C_FORCE_ROOT', 'true') os.environ.setdefault('DJANGO_SETTINGS_MODULE', '{PATH TO SETTINGS FILE}') execute_from_command_line(sys.argv)
命令supervisorctl可以使用start/stop/status管理每个进程
[root@d11092353 supervisor-3.3.1-py2.7.egg-info]# supervisorctl dopcelery:dopcelerybeat STOPPED Dec 15 04:40 PM dopcelery:dopceleryworker RUNNING pid 31136, uptime 0:27:58 supervisor> status dopcelery:dopcelerybeat dopcelery:dopcelerybeat STOPPED Dec 15 04:40 PM supervisor>
supervisorctl API:官方文档 http://www.supervisord.org/api.html
import xmlrpclib server = xmlrpclib.Server('http://127.0.0.1:9900/RPC2') server.supervisor.getState() 返回 >>> {'statename': 'RUNNING', 'statecode': 1} server.supervisor.getProcessInfo('group:name') 返回 >>> 任务状态
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?