检查Twisted启动的Twisted Server是否成功启动

我需要一种可靠的方法来检查通过twistd(和TAC文件)启动的基于Twisted的服务器是否已成功启动。 它可能会失败,因为某些网络选项设置错误。 由于我无法访问twistd日志(因为它记录到/ dev / null,因为我不需要日志混乱的twistd产品),所以我需要确定Server是否在启动脚本中成功启动,该脚本包装扭打的电话。

启动脚本是这样的Bash脚本:

#!/usr/bin/bash
twistd 
  --pidfile "myservice.pid" 
  --logfile "/dev/null" 
  --python 
  myservice.tac

我在网上发现的一些使用ps或类似的东西的黑客。 但我不喜欢这样的方法,因为我认为它不可靠。

所以我在考虑是否有方法访问Twisted的内部结构,并获取当前正在运行的Twisted应用程序? 这样我就可以查询当前运行的应用程序中我的Twisted应用程序的名称(就像我在TAC文件中命名的那样)以开始。

我也在考虑不使用twistd可执行文件,而是实现一个基于Python的启动脚本,其中包含扭曲的内容,就像这个问题的答案一样,但我不知道这是否能帮助我获得服务器运行。

所以我的问题是:是否有一种可靠的不方便的方式来判断Twist服务器是否启动成功,当twistd日志被禁用?


您明确指定了一个PID文件。 twistd会将其PID写入该文件。 您可以检查系统以查看是否存在具有该PID的进程。

您还可以使用自定义日志观察程序重新启用日志记录,该日志观察程序仅记录启动事件并放弃所有其他日志消息。 然后,您可以观看启动事件的日志。

另一种可能是将另一台服务器添加到您的应用程序中,从而暴露您提到的内部组件。 然后尝试连接到该服务器,并四处看看你想看到什么(只是服务器正在运行的事实似乎是一个很好的迹象表明,该过程启动正常,但)。 如果你使它成为一个人孔服务器,那么你就可以评估任意Python代码,它可以让你检查你想要的过程中的任何状态。

你也可以让应用程序代码写出一个额外的状态文件,明确指出启动成功。 确保在开始应用程序之前将其删除,并且您将具有成功与失败的良好指标。

链接地址: http://www.djcxy.com/p/29205.html

上一篇: Check if Twisted Server launched with twistd was started successfully

下一篇: Twisted: disable logging of Twisted