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

编程入门 行业动态 更新时间:2024-10-28 05:24:43
本文介绍了检查使用twistd启动的Twisted服务器是否已成功启动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我需要一种可靠的方法来检查通过twistd(和TAC文件)启动的基于Twisted的服务器是否已成功启动。它可能会因为某些网络选项设置错误而失败。由于我无法访问twistd日志(因为它被记录到/dev/空,因为我不需要log-cluttertwistd产生),所以我需要在包装twistd调用的启动脚本中确定服务器是否成功启动。

启动脚本是如下所示的Bash脚本:

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

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

所以我在想,是否有一种方法可以访问Twisted的内部,并使所有当前运行的Twisted应用程序都能运行?这样,我就可以在当前运行的应用程序中查询要启动的Twisted应用程序的名称(就像我在TAC文件中命名的那样)。

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

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

推荐答案

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

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

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

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

更多推荐

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

本文发布于:2023-10-11 17:37:48,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1482373.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:服务器   twistd   Twisted

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!