作为守护进程运行芹菜不会创建PID文件



自从过去几天以来,我一直在为这个问题绞尽脑汁,我在stackoverflow上看到了其他问题(因为这是一个重复的问题),我已经尽了一切努力来实现这一点,工人们运行得很好,但芹菜并没有作为一个过程启动。

我运行命令:

sudo service celeryd start

我得到:

celery init v10.1.
Using config script: /etc/default/celeryd
celery multi v3.1.23 (Cipater)
> Starting nodes...
> worker1@ip-172-31-21-215: OK

我运行:

sudo service celeryd status

我得到:

celery init v10.1.
Using config script: /etc/default/celeryd
celeryd down: no pidfiles found

我需要解决celeryd:no pidfiles found错误。

我知道这个问题是重复的,但在这个问题上我仍然同意,因为我已经尝试了所有的问题,但仍然无法解决。

我正在亚马逊网络服务上部署这个脚本。我正在使用虚拟环境。

init.d脚本是直接从这里获取的,然后我给了它所需的权限。

这是我的配置文件:

# Names of nodes to start
#   most people will only start one node:
CELERYD_NODES="worker1"
#   but you can also start multiple and configure settings
#   for each in CELERYD_OPTS (see `celery multi --help` for examples):
#CELERYD_NODES="worker1 worker2 worker3"
#   alternatively, you can specify the number of nodes to start:
#CELERYD_NODES=10
# Absolute or relative path to the 'celery' command:
# CELERY_BIN="/usr/local/bin/celery"
CELERY_BIN="/home/<user>/.virtualenvs/<virtualenv_name>/bin/celery"
# App instance to use
# comment out this line if you don't use an app
# CELERY_APP="proj"
# or fully qualified:
CELERY_APP="<project_name>.settings:app"
# Where to chdir at start.
CELERYD_CHDIR="/home/<user>/projects/<project_name>/"
# Extra command-line arguments to the worker
CELERYD_OPTS="--time-limit=300 --concurrency=8"
# %N will be replaced with the first part of the nodename.
CELERYD_LOG_FILE="/var/log/celery/%N.log"
CELERYD_PID_FILE="/var/run/celery/%N.pid"
# Workers should run as an unprivileged user.
#   You need to create this user manually (or you can choose
#   a user/group combination that already exists, e.g. nobody).
CELERYD_USER="celery"
CELERYD_GROUP="celery"
# If enabled pid and log directories will be created if missing,
# and owned by the userid/group configured.
CELERY_CREATE_DIRS=1

我已经使用这个过程创建了使用本文的芹菜用户。

我的项目是一个Django项目,我已经在芹菜设置文件中指定了DJANGO_SETTINGS_MODULE环境变量,如文档和stackoverflow答案中所指定的。

我是否需要更改init.d脚本中的任何内容,或者需要添加到芹菜配置文件中的任何其他内容。。。是关于我创建的芹菜用户吗,因为我也尝试指定

CELERYD_USER = ""
CELERYD_GROUP = ""

同时还在init.d脚本中将DEFAULT_USER值更改为"。尽管如此,这个问题仍然存在。

在其中一个答案中,它还被告知该项目中可能存在一些错误。。。但由于我的测试用例,我没有发现任何这样的错误。

PS:我已经指定,并针对隐私问题他们有自己的原名。

我在ubuntu服务器上遇到了类似的问题[错误2]找不到文件。事实证明,即使在芹菜示例文档中的celery.service配置中进行了设置,/var/run/ccelene/Directories也不会自动创建。您可以创建该目录,并手动授予正确的权限,但一旦重新启动服务器,该目录就会消失,因为它位于临时目录中。在阅读了一些关于linux系统如何操作的内容后,我发现您只需要在/etc/tmpfiles.d/celery.conf中创建一个配置文件,其中包含以下行

d /var/run/celery 0755 admin admin -
d /var/log/celery 0755 admin admin -                                       

注意:您需要使用除"admin"之外的其他user:group,或者您可以创建一个名为admin的user:group来专门处理您的芹菜过程。

您可以通过键入来阅读有关此配置及其操作方式的更多信息

man tmpfiles.d

我刚刚解决了这个问题,感谢上帝!对我来说,这是一个许可问题。我本以为它在/var/run/celecer或/var/log/celecere中,但事实证明它是我为Django日志设置的日志文件。出于某种原因,西芹想写那个文件(我必须调查一下),但没有得到许可。我发现了verbose命令的错误,并跳过守护进程步骤:

# C_FAKEFORK=1 sh -x /etc/init.d/celeryd start 

这是一个旧线程,但如果你们中的任何人遇到这个错误,我希望这可能会有所帮助!

祝你好运!

我看到了同样的问题,结果是权限问题。请确保将运行芹菜的用户/组设置为拥有/var/log/celece/和/var/run/celecer/文件夹。请参阅此处以获取分步示例:对芹菜进行消毒

相关内容

  • 没有找到相关文章

最新更新