gpt4 book ai didi

python - 无法重启 buildbot master

转载 作者:行者123 更新时间:2023-11-28 18:40:15 25 4
gpt4 key购买 nike

我在 Windows7 上运行 Buildbot 版本 0.8.8。

我有一个配置 (master.cfg) 文件,它使用一个小技巧创建了所有构建器。我从颠覆中读取了一个 XML 文件,其中列出了构建器的所有步骤。像这样的东西:

<Builder name="BuilderA" description="Builds the A project">
<Command name="Clean">-v -t realclean -p my\\projA</Command>
<Command name="Release">-v -t release -p my\\projA</Command>
</Builder>

<Builder name="BuilderB" description="Builds the B project">
<Command name="Clean">-v -t realclean -p my\\projB</Command>
<Command name="Release">-v -t release -p my\\projB</Command>
</Builder>

想法是任何开发人员都可以在 subversion 中更改 XML 文件,然后可以重新启动 buildmaster 以获得新的 buildbot 配置。

我使用以下命令启动 buildbot:buildbot start C:\master_dir

我面临的问题是,当我尝试重新启动 buildbot 时,它会提示buildmaster 未运行。深入研究资源,我发现在尝试打开 twisted.pid 文件时,它在 buildbot\scripts\stop.py:34 中失败。

pidfile = os.path.join(basedir, 'twistd.pid')
try:
with open(pidfile, "rt") as f:
pid = int(f.read().strip())
except:
if not config['quiet']:
print "buildmaster not running"
return 0

我不知道这个 twisted.pid 文件是什么,为什么 buildbot 正在寻找这个?任何帮助或想法将不胜感激。谢谢。

最佳答案

我遇到了同样的问题。似乎在 Windows 上未创建文件 twistd.pid。我不确定错误从何而来,但我已将错误报告给 buildbot 团队:http://trac.buildbot.net/ticket/3512

作为解决方法,我现在在我的 master.cfg 中添加:

import os
if not os.path.exists("twistd.pid"):
with open("twistd.pid", "w") as pidfile:
pidfile.write("{}".format(os.getpid()))

编辑:实际上,似乎 PID 文件在停止后并没有被删除......所以我尝试更多:

else:
realpid = os.getpid()
filepid = 0
with open("twistd.pid", "r") as pidfile:
filepid = int(pidfile.read())
if filepid == 0 or filepid != realpid:
with open("twistd.pid", "w") as pidfile:
pidfile.write("{}".format(realpid))

它似乎可以工作,但如果您在 buildbot 真的 未运行时尝试停止它,您会收到错误消息,因为 PID 文件会产生错误的 PID 并会尝试终止它.

关于python - 无法重启 buildbot master,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27175154/

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