django – sudo etcinit.dceleryd start生成“未知命令:’celeryd_multi’”

django – sudo etcinit.dceleryd start生成“未知命令:’celeryd_multi’”,第1张

概述我正在使用我的虚拟环境中的变量设置celery来运行daemonized.但是当我运行$sudo /etc/init.d/celeryd start时,我收到未知命令:’celeryd_multi’输入’manage.py help’以供使用. 我设置了以下内容: CELERYD_CHDIR=”/home/myuser/projects/myproject” ENV_PYTHON=”/home/m 我正在使用我的虚拟环境中的变量设置celery来运行daemonized.但是当我运行$sudo /etc/init.d/celeryd start时,我收到未知命令:’celeryd_multi’输入’manage.py help’以供使用.

我设置了以下内容:

CELERYD_CHDIR=”/home/myuser/projects/myproject”
ENV_PYTHON=”/home/myuser/.virtualenvs/myproject/bin/python”
CELERYD_MulTI=”$ENV_PYTHON $CELERYD_CHDIR/manage.py celeryd_multi”

当我从命令行运行$/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身份启动芹菜,如果这样的东西甚至存在,可能没有在/root/.virtualenvs/中激活virtualenv,因此它在/ usr中查找python包/ lib / …你的默认python是什么,因此你的芹菜没有安装.

您可以选择:

>在root用户下复制相同的virtualenv并像尝试使用sudo一样启动它
>保持virtualenv的位置,并在不使用init脚本的情况下以您的用户“myuser”(无sudo)启动celery.
>编写一个脚本,将su – myuser -c / bin / sh /home/myuser/.virtualenvs/myproject/bin/celeryd作为myuser从init.d调用它.
>在virtualenv之外安装主管,让它为你做脏工

思考:

>避免将root用于任何你不需要的东西.>如果您不需要芹菜来启动,那么这很好,可能包含在脚本中.>对我来说简单的Hackish,但如果你不想再投资30分钟来使用别的东西,那就有效.>强烈推荐可能是处理所有python启动需求的最佳方法.

总结

以上是内存溢出为你收集整理的django – sudo /etc/init.d/celeryd start生成“未知命令:’celeryd_multi’”全部内容,希望文章能够帮你解决django – sudo /etc/init.d/celeryd start生成“未知命令:’celeryd_multi’”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1194639.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存