Ubuntu 18.04部署Django+Celery+Supervisor启动报no such file错误如何解决?
问题原因排查
- 配置未加载:修改/新增supervisor配置后未执行配置重载操作,supervisor无法识别新增的服务
- 配置存放路径错误:supervisor默认仅加载
/etc/supervisor/conf.d/目录下的.conf配置文件,若配置文件存放于其他路径则无法被识别 - 路径不存在:
- 虚拟环境内celery执行文件路径
/home/djangoadmin/.virtualenvs/bscscanapi/bin/celery不存在 - 项目工作目录
/home/djangoadmin/stalker-nichan/bscscanapi不存在 - 日志输出目录
/var/log/celery/未提前创建,supervisor无法写入日志导致启动失败
- 虚拟环境内celery执行文件路径
- 启动命令不匹配:你执行的启动命令中服务名
pichacelery是教程示例名,与你配置文件中定义的bscscanapicelery不一致
可行解决方案
- 移动配置文件到正确路径
sudo mv 你的配置文件存放目录/bscscanapi_celery*.conf /etc/supervisor/conf.d/
- 提前创建日志目录并分配权限
sudo mkdir -p /var/log/celery sudo chown djangoadmin:djangoadmin /var/log/celery
- 验证路径有效性,执行以下两条命令确认无报错
ls /home/djangoadmin/.virtualenvs/bscscanapi/bin/celery ls /home/djangoadmin/stalker-nichan/bscscanapi
若上述命令提示文件不存在,替换为你实际的虚拟环境celery路径、项目目录路径即可。可先激活对应虚拟环境后执行which celery获取真实的celery执行文件路径。
4. 重载supervisor配置
sudo supervisorctl reread sudo supervisorctl update
- 执行正确的启动命令
# 启动celery worker sudo supervisorctl start bscscanapicelery # 启动celery beat sudo supervisorctl start bscscanapicelerybeat
启动完成后执行sudo supervisorctl status查看服务状态,显示RUNNING即为启动成功。若仍有报错,可查看/var/log/celery/下的对应日志、/var/log/supervisor/supervisord.log全局日志定位问题。
内容的提问来源于stack exchange,提问作者pH4nT0M
相关产品推荐
相关产品推荐

