首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查使用twistd启动的Twisted服务器是否启动成功

检查使用twistd启动的Twisted服务器是否启动成功
EN

Stack Overflow用户
提问于 2011-09-27 19:25:17
回答 1查看 694关注 0票数 3

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

启动脚本是一个Bash脚本,如下所示:

代码语言:javascript
复制
#!/usr/bin/bash
twistd \
  --pidfile "myservice.pid" \
  --logfile "/dev/null" \
  --python \
  myservice.tac

我在网上找到的只有一些hacks using ps or stuff like that。但我不喜欢这样的方法,因为我认为它不可靠。

所以我在想,是否有一种方法可以访问Twisted的内部结构,并获得所有当前正在运行的Twisted应用程序?这样,我就可以在当前运行的应用程序中查询要启动的Twisted应用程序的名称(正如我在TAC-file中命名的那样)。

我也在考虑不使用twistd可执行文件,而是实现一个基于Python的启动脚本,其中包含twistd-content,比如the answer to this question provides,但我不知道这是否能帮助我获得服务器的运行状态。

所以我的问题是:当twistd日志记录被禁用时,有没有一种可靠而不难看的方法来判断使用twistd启动的Twisted Server是否成功启动?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-27 19:59:49

您正在显式指定PID文件。twistd会将其PID写入该文件。您可以检查系统以查看是否存在具有该PID的进程。

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

另一种可能是向您的应用程序添加另一个服务器,以公开您提到的内部结构。然后尝试连接到该服务器并查看您想要查看的内容(不过,服务器正在运行这一事实似乎很好地表明该进程已正确启动)。如果您将其设置为检修孔服务器,那么您将能够评估任意Python代码,这允许您检查进程中的任何状态。

您还可以让您的应用程序代码写出一个额外的状态文件,该文件显式地指示成功启动。确保在启动应用程序之前将其删除,这样您就可以很好地判断成功与失败。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7568309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档