python unix 服务库

发布于 2024-10-07 16:41:20 字数 458 浏览 3 评论 0原文

我有一个命令行 python 应用程序,它是一项服务 - 即它等待连接并在收到请求时执行操作,例如网络服务器。有 python-daemon 库用于处理与终端分离、分叉等所有问题。但我想更进一步 - 让程序执行以下操作:

  1. 知道它是否是是否已经运行(通过检查 PID 文件)
  2. 当使用“start”选项调用时,如果守护进程未运行,则应启动该守护进程;如果正在运行,则告知现有守护进程的 PID 并退出。
  3. 当使用“stop”选项调用时,它应该杀死正在运行的实例(如果存在),并清理 PID 文件。
  4. 当使用“重新启动”选项调用时,它应该执行“停止”,然后“启动”。
  5. 当使用“状态”选项调用时,它应该显示正在运行的实例的 PID,如果没有运行,则不显示任何内容。

如果这看起来像标准的 Unix 服务——那正是我想要的。有没有实现这种模式的Python库?

I have a command-line python app that is a service - i.e. it waits for connections and does stuff when asked, like webserver. There's python-daemon library for dealing with all the issues of detaching from the terminal, forking, etc. but I'd like to go a bit further - to have the program do the following:

  1. Know if it's already running or not (by checking the PID file)
  2. When called with 'start' option it should start the daemon if it's not running, or tell the PID of existing one and exit if running.
  3. When called with 'stop' option it should kill the running instance if it exist, and clean the PID file.
  4. When called with 'restart' option it should do 'stop', then 'start'
  5. When called with 'status' option it should display the PID of running instance or nothing if it's not running.

If that looks like standard Unix service - that's exactly what I want. Is there a Python library that implements such pattern?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文