我们正在使用Celery和RabbitMQ来处理工作。他们都由主管经营,以便他们可以活着。
有些作业期望用户A的主目录中有一个文件。因此我们在主管中以用户A的身份运行芹菜工作者。但是当工作正在处理时,它正在扩大“工作”。 as' / root'。为什么会这样?我们如何通过扩展'〜'来确保它能够找到主目录。因为我们的代码需要文件跟随'〜'在很多地方?
答案 0 :(得分:1)
您可能需要使用supervisord
的{{1}}配置指令以专用用户身份运行芹菜进程,而不是user
。
你也应该明确地将chdir用于工作目录 - 无论是在你的芹菜代码中还是使用主管root
设置。
如果你想依靠directory
工作,你也应该设置环境变量~
。但是$HOME
是一个shell扩展,可能并不总是有效。最便携的解决方案是依靠~
设置。
directory
/etc/supervisor.d/celery.conf