我正在使用虚拟环境中的变量设置 celery 以运行守护进程。但是当我运行 $ sudo /etc/init.d/celeryd start
时,我得到 Unknown command: 'celeryd_multi' Type 'manage.py help' for usage.
我设置了以下内容:
当我从命令行运行 $ /home/myuser/.virtualenvs/myproject/bin/python /home/myuser/projects/myproject/manage.py celeryd_multi
时,它工作正常。
有任何想法吗?我很乐意发布您需要的任何其他代码:)
谢谢!
最佳答案
这里的问题是,当您以用户身份运行它时,virtualenv 已经为您的用户“myuser”激活了适当的环境,并且它从/home/myuser/.virtualenvs/myproject/...
当您执行 sudo/etc/init.d/celeryd start 时,您正在以 root 身份启动 celery,如果这样的事情甚至存在,则可能没有在/root/.virtualenvs/中激活 virtualenv,因此它会在/usr 中查找 python 包/lib/... 默认python 所在的位置,因此未安装 celery 的位置。
您的选择是:
su - myuser -c /bin/sh /home/myuser/.virtualenvs/myproject/bin/celeryd
作为 myuser 从 init.d 调用它。 想法:
关于django - sudo/etc/init.d/celeryd start 生成一个 "Unknown command: ' celeryd_multi'",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11443245/