在任何情况下都可以使用性能良好的unix守护进程。

daemons的Python项目详细描述


每次都有性能良好的unix守护进程。

项目状态

认为此项目处于维护模式

该项目于2014年推出v1.0.0版。从那以后它只收到了两个补丁 包含代码更改的。所有其他修补程序都是维护更新 保持自动化测试和静态分析的运行。我不期望 不娱乐的新功能要求。

我仍然会回应减贫战略和解决漏洞或安全问题的问题。 请把这些寄给https://github.com/kevinconway/daemons

什么是守护进程?

守护进程是要创建的python开发人员的资源库 守护进程。这个库中的类提供了基本的守护, 信号处理和PID管理功能,同时允许 行为和逻辑的实现。

自定义后台程序示例

importtimefromdaemons.prefabimportrunclassSleepyDaemon(run.RunDaemon):defrun(self):whileTrue:time.sleep(1)

现在创建一个简单的init脚本来启动守护进程。

#!/usr/bin/env pythonimportloggingimportosimportsysimporttimefrommypackageimportSleepyDaemonif__name__=='__main__':action=sys.argv[1]logfile=os.path.join(os.getcwd(),"sleepy.log")pidfile=os.path.join(os.getcwd(),"sleepy.pid")logging.basicConfig(filename=logfile,level=logging.DEBUG)d=SleepyDaemon(pidfile=pidfile)ifaction=="start":d.start()elifaction=="stop":d.stop()elifaction=="restart":d.restart()

有比简单rundaemon更多的守护程序类型。查看文档了解更多信息。

< H2>包装现有代码

守护程序还可以用于对任意python函数进行守护。

importtimefromdaemonsimportdaemonizer@daemonizer.run(pidfile="/tmp/sleepy.pid")defsleepy(sleep_time):whileTrue:time.sleep(sleep_time)sleepy(20)# Daemon started with 20 second sleep time.

守护程序还支持添加信号处理程序。查看文档了解更多信息。

守护程序功能

“预制”模块中的守护程序附带以下功能:

  • pidfile管理
  • 信号处理
  • 启动/停止/重新启动功能
  • Unix进程守护

这些特性的默认实现都是由python标准驱动的 图书馆模块。可以通过添加另一个组件来覆盖或扩展每个组件 实现组件接口的守护进程的基类。检查 要实现的项的“接口”包。

“预制”守护进程有三种类型。“rundaemon”要求您 实现“run”方法,该方法应使用某种形式的循环。如果“逃跑” 方法完成此过程将停止。“StepDaemon”要求您 实现“step”方法。进程将对无限循环调用“step”。 eventlet和gevent消息守护进程要求您实现 “获取消息”和“处理消息”方法。这些可以拿来处理 绿色线程内的消息。

许可证

Copyright 2013 Kevin Conway

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

贡献

本项目的所有捐款均受以下协议的保护: 贡献文件。所有贡献者都应该阅读协议,但是 摘要:

You give us the rights to maintain and distribute your code and we promise
to maintain an open source distribution of anything you contribute.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Spring数据elasticsearch@Query嵌套对象注释   java JAXB解组器正在跳过具有其他命名空间的元素   java Web视图文件选择器崩溃问题   macos通过java创建的应用程序访问MacOSX上的麦克风,并打包到。dmg   在子文件夹上使用java设置ACL的文件权限失败(缺少继承)   java Force在AlertDialog中显示软键盘   java如何保存上传的文件   java如何从jpeg文件中的FFC4(DHT)头创建哈夫曼树?   关于高性能流数据处理的java问题   SpringMVC项目中Tiles页面的java集标题   从Java到Webview Javascript的Android回调函数   java无法从循环打印“FlimFlam”   OpenJDK安装时没有java命令