在任何情况下都可以使用性能良好的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 optaplanner如何动态添加或编辑规则   java使用“public”是什么情况   java在selenium框架中,上下转换背后的逻辑是什么?   在Oracle ADF中使用EAR文件的java安装应用程序   java在Gradle中对现有的未签名apk进行签名   java spring事务超时不起作用   java是类级注释的定义类加载器始终是该类的初始类加载器的父级?   java在mysql中使用LIKE查询获取带撇号的记录   java CallableOrg。postgresql。util。日期参数未知的PSQLException   java我无法向jframe添加多个swing组件   java如何用数学在卡片对象中洗牌。随机的   java JavaFX 8将图形添加到右侧的标题窗格中   java NoClassDefFoundError。为什么?我该怎么修?   java重构Windows、UNIX、URI路径混合   关于java的服务。util。同时发生的ScheduledExecutorService。scheduleAtFixedRate:它执行任务的频率是多少?   TLS连接中ServerHelloDone之后的java SocketTimeoutException   java将多个图像上载到firebase并检索到viewpage   java有没有一种方法可以在不使用AWS SDK for 安卓的情况下在安卓应用程序上多部分上传到我的S3存储桶?