Python库:Daemoniker

Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。

什么是Daemoniker?


Daemoniker为守护式Python代码运行和传递信号提供了一种跨平台的API。在Unix平台上,它使用标准的double-fork方式,在Windows平台,它为pythonw.exe进程创建一个与原进程相互独立的子进程。


Daemoniker也为产生的守护进程提供了几个实用工具。特别是,它包含了一种使用跨平台的方式为所创建的守护进程提供信号量的能力。


完整的文档可以查看这里


安装


Daemoniker要求Python 3.5以上的版本:

1.jpg


为何要进程守护化?


Windows下的Python有pythonw.exe,它可以提供一个运行在后台的“没有GUI的GUI应用”。但这也使得一旦启动后就没法通过终端与进程交换信息。想要创建windows后台进程的开发者被迫要么选择写一个用pythonw.exe(或者使用像pyinstaller这样的打包工具)的最小化GUI应用,要么定义并安装他们的代码为Windows服务进程。要在Windows下写一个简单的python守护进程代码有明显的隔阂,在Unix系统下也有相同的隔阂。


用例


在你脚本的开头处,通过daemoniker.Daemonizer上下文管理器来守护进程化:

2.jpg


信号的处理工作通过同一个path_to_pid_file:

3.jpg


这个进程以后可以接受其他进程的信号了:

4.jpg


贡献


我们欢迎而且需要帮助。不幸的是,我们人手严重不足,我们甚至没有时间做出一个全面的贡献指南。但是眼下:


指南


  • 可以提议题(Issues)。可以为任何事开议题:特性要求,缺陷报告等。

  • Fork,然后PR。

  • 为每一个PR开议题(issue):

    • 对所有的讨论使用议题。

    • 在议题讨论中引用PR。

  • 请耐心点。我们最终总会为我们退回给你(的请求)给出反馈解释。由于我们缺乏贡献指南、样式指南等东西,这个过程可能会很反复。

  • 请在所有讨论中有礼貌。


项目优先项


  • 贡献指南

  • 代码组织

  • 测试用例的扩展和改进

  • 无用导入(import)的清理

  • 对优先级下降的支持


赞助者与支持者


如果你喜欢我们的工程。请考虑赞助或者支持Muterra的开源集。



英文原文:https://github.com/Muterra/py_daemoniker
译者:yuezy3
 

2月15日11:00到13:00网站停机维护,13:00前恢复