gpt4 book ai didi

celery - Fabric sudo 无声地失败

转载 作者:行者123 更新时间:2023-12-02 07:02:16 25 4
gpt4 key购买 nike

我在 OS X 10.8.2 上使用 Fabric 1.6.0,在 Ubuntu Lucid 10.04 上的远程主机上运行命令。

在服务器上,我可以运行 sudo /etc/init.d/celeryd restart重新启动 Celery 服务。

我使用以下方式通过结构传递相同的命令:

@task
def restart():
run('sudo /etc/init.d/celeryd restart')

或者

@task
def restart2():
sudo('/etc/init.d/celeryd restart')

或者使用命令行形式fab <task_that_sets_env.host> -- sudo /etc/init.d/celeryd restart

该命令总是默默地失败 - 这意味着 Fabric 不会返回错误,但 celeryd 报告它没有运行。

我在这里撕扯我的头发! Celery 日志文件中没有任何相关内容,据我所知 Fabric 应该直接传递命令。

最佳答案

也许我来晚了,如果这不起作用,你可以对我投反对票,但我在使用 Fabric 运行/etc/init.d 中的其他程序时遇到了类似的问题。我的解决方案(适用于 tomcat 和 mysql)是添加 pty=False

@task
def restart():
sudo('/etc/init.d/celeryd restart', pty=False)

这里有关于该选项的文档:

http://docs.fabfile.org/en/1.7/api/core/operations.html#fabric.operations.run

关于celery - Fabric sudo 无声地失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16367144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com