我在 Ubuntu EC2 实例上设置并运行了 Celery 作为守护进程。今天早上我更新了一些任务并尝试重新启动 Celery,但它没有工作。经过一番努力,我发现:
- 芹菜将要如果我运行命令
sudo /usr/local/bin/celeryd --time-limit=300 -f /var/log/celeryd.log -l INFO
(即 init 脚本正在使用的命令),它就会启动。 - 芹菜将不会如果我运行 ,则运行
sudo service celeryd start
。在这种情况下,启动脚本将报告它已启动并将.pid
在 中创建一个文件/var/run
,但该进程不存在/已停止。
有没有关于如何修复此问题的提示?我恢复了对任务文件和 celeryconfig 模块的所有更改,但这似乎无助于它作为守护进程运行。我正在使用来自 git repo 的初始化脚本。
答案1
在我的案例中,问题是由于文件权限问题。我用于 Celery 的用户无法读取celeryconfig
和文件。我通过从脚本中删除该选项解决了这个问题,然后看到了 Python 导入错误。tasks
--background
init.d