在任何情况下都可以使用性能良好的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自定义视图“ImageButton”调用了setOnTouchListener,但没有覆盖performClick   异常处理Java TestNG:为什么我的断言在trycatch块中写入时总是通过   简单检查操作在java中不起作用   java如何安装JRE 1.6的最新TZ更新   java无法启动NavigationDrawerActivity ID未引用此活动内的视图   java sql使用spring jpa(外键null)一对多更新   java jdk8 struts 1.1 jasperreport 1.2   Java泛型、类型推断、继承?   java Spring Data MongoDB存储库查询连接是如何工作的?   java更新整个JFrame,包括所有JC组件   java如何从客户端应用程序使用nanohttpd WebSocket?   如何使用java恢复数据库备份文件   java BufferedWriter使用MSB 1写入字符