0

我可以.pid通过提供 --pidfile=选项来twistd设置文件的文件名。有没有办法可以在.tac文件中指定它?

语境:

我的扭曲服务是一个玩游戏的机器人,它接受多个参数,比如他的名字、技能水平等。我正在.tac为每个机器人创建一个文件(多个机器人可以同时运行),这样每个特定的机器人总是有相同的参数,我可以启动它twisted -y botname.tac

我希望 pid 文件具有以下形式<bot_nick>.pid,以便不同的机器人不使用相同的 pid 文件,而且我可以通过列出 pid 文件来查看两者都在运行。有没有办法可以在.tac文件本身中设置它,或者我是否必须始终在 twistd 命令行选项中手动指定它twistd -y bot1.tac --pidfile=bot1.pid

4

1 回答 1

1

文件.tac旨在描述可以运行的服务;而选项twistd是关于如何运行服务的选项。因此,将 pidfile 文件名或日志配置或类似的任何内容放入.tac文件中是没有意义的。在这种情况下,.pid文件在读取文件时已经被写入.tac,因此即使作为解决方法,也无法做到这一点。

如果您想编写一个专门的配置系统,最​​好编写一个像库一样使用的工具,例如Axiom 数据库附带的工具中twistdaxiomatic的这个示例。当然,界面可能会更好——目前,你实际上必须使用字符串合成一个文字命令行,并且需要子类化——但这让你可以非常精细地控制服务的运行方式,而无需尝试破解仅仅因为.tac文件恰好是 Python就增加了全局状态的其他位。

于 2016-01-22T06:49:39.710 回答