2016-05-22 12 views
1

私は、sudoでセロリの労働者を実行すると、私は次のエラーを取得する:スーパーユーザーがセロリの労働者を走らせる方法は?

Running a worker with superuser privileges when the 
worker accepts messages serialized with pickle is a very bad idea! 

If you really want to continue then you have to set the C_FORCE_ROOT 
environment variable (but please think about this before you do). 

User information: uid=0 euid=0 gid=0 egid=0 

も私のC_FORCE_ROOT環境変数は、です:

echo $C_FORCE_ROOT 
true 

詳細情報:
パイソン - > 2.7.6
セロリ - > 3.1.23(Cipater)
OS - > Linux(Ubuntu 14.04)

私はどのようにsudoでセロリを動かすべきですか?私はそれが安全ではないことを知っているが、私は本当にそれを行う必要がいくつかの理由で!

答えて

2

OK解決策を見つけました。
documentationで述べたようにセロリ3.1以上では、漬物のシリアル化と労働者はクラッシュしますが:

Worker will now crash if running as the root user with pickle enabled.

ので、sudoを使用して、あなたがセロリのconfigs.Iにピクルスのシリアル化を無効にする必要がありますが、JSONを使って、それをやった:

app.conf.update(
    CELERY_ACCEPT_CONTENT = ['json'], 
    CELERY_TASK_SERIALIZER = 'json', 
    CELERY_RESULT_SERIALIZER = 'json', 
) 

そして、sudoを使って実行するとうまくいきます!

関連する問題