位置: 编程技术 - 正文

Python守护进程和脚本单例运行详解(守护进程和普通进程)

编辑:rootadmin

推荐整理分享Python守护进程和脚本单例运行详解(守护进程和普通进程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:守护进程和普通进程,python 守护进程模块,python守护线程的作用,python守护线程与非守护线程,flask 进程守护,守护进程编写,守护进程编写,python 守护进程,内容如对您有帮助,希望把文章链接给更多的朋友!

本篇文章主要介绍了Python守护进程和脚本单例运行,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

一、简介

守护进程最重要的特性是后台运行;它必须与其运行前的环境隔离开来,这些环境包括未关闭的文件描述符、控制终端、会话和进程组、工作目录以及文件创建掩码等;它可以在系统启动时从启动脚本/etc/rc.d中启动,可以由inetd守护进程启动,也可以有作业规划进程crond启动,还可以由用户终端(通常是shell)执行。

Python有时需要保证只运行一个脚本实例,以避免数据的冲突。

二、Python守护进程

1、函数实现

可以通过命令ps -ef | grep daemon.py查看后台运行的继承,在/tmp/daemon_error.log会记录错误运行日志,在/tmp/daemon_stdout.log会记录标准输出日志。

2、类实现

运行结果:

它是当Daemon设计成一个模板,在其他文件中from daemon import Daemon,然后定义子类,重写run()方法实现自己的功能。

不足:信号处理signal.signal(signal.SIGTERM, cleanup_handler)暂时没有安装,注册程序退出时的回调函数delpid()没有被调用。

Python守护进程和脚本单例运行详解(守护进程和普通进程)

然后,再写个shell命令,加入开机启动服务,每隔2秒检测守护进程是否启动,若没有启动则启动,自动监控恢复程序。

三、python保证只能运行一个脚本实例

1、打开文件本身加锁

注意:open()参数不能使用w,否则会覆盖本身文件;pidfile必须声明为全局变量,否则局部变量生命周期结束,文件描述符会因引用计数为0被系统回收(若整个函数写在主函数中,则不需要定义成global)。

2、打开自定义文件并加锁

3、检测文件中PID

4、检测特定文件夹或文件

也可以检测某一个特定的文件,判断文件是否存在:

上述os.kill( pid, 0 )用于检测一个为pid的进程是否还活着,若该pid的进程已经停止则抛出异常,若正在运行则不发送kill信号。

5、socket监听一个特定端口

可以将该函数使用装饰器实现,便于重用(效果与上述相同):

四、总结

(1)守护进程和单脚本运行在实际应用中比较重要,方法也比较多,可选择合适的来进行修改,可以将它们做成一个单独的类或模板,然后子类化实现自定义。

(2)daemon监控进程自动恢复避免了nohup和&的使用,并配合shell脚本可以省去很多不定时启动挂掉服务器的麻烦。

标签: 守护进程和普通进程

本文链接地址:https://www.jiuchutong.com/biancheng/381362.html 转载请保留说明!

上一篇:Python 基础知识之字符串处理(python 基础 详细)

下一篇:Python中的sort()方法使用基础教程(python中sort()的用法)

  • 税负统计口径
  • 中国税务师协会税务师官网
  • 申报无票收入次月红冲有没有风险
  • 金税四期可以查个人账户吗
  • 实收资本库存现金凭证怎么开
  • 核定征收可以不开免税普票吗
  • 保单的增值税发票
  • 公司对公账户限额吗
  • 运输过程中的货损责任
  • 高温补贴能以别的形式发放吗
  • 应纳税所得额计算公式excel
  • 固定资产之前没提折旧,数额交大
  • 提供部分原料的英文
  • 滞留票是什么意思
  • 如何查询对方是不是老赖
  • 纯出口企业要交税吗
  • 金税盘管理费用怎么结转
  • 旧房转让土地增值税计算
  • 汉字防伪企业是哪家
  • 远洋船员如何征收个人所得税?
  • 提现属于支出吗
  • 厂房转让会计分录
  • 去年进项税没有抵扣了
  • 对方已经认证的红字发票怎么开
  • 电脑病毒的特点包括
  • 冲往年管理费用的账务处理是否涉及所得税
  • linux怎样安装
  • bds.exe
  • 取得抵债资产的方式
  • wordpress文章分页插件
  • thinkphp6开发
  • 车辆购置税征收对象
  • 现金日记账的填制要求
  • php 进程通信
  • 人工智能机器人保姆什么时候实现
  • ips attack
  • ninja命令使用
  • python填写表格
  • 投标代理费应如何支付
  • 税款已缴纳后发票怎么查
  • 出口退税转内销的话如何算发票金额
  • 与上级往来的会计科目的题目
  • 利息收入的纳税调整
  • 管理费用属于什么类
  • 设计模式golang
  • 差旅费报销金额大于实际发生金额
  • 跨月已计入费用后收到发票
  • 海关票怎么做账
  • 小额贷款公司如何做账
  • 资产总额是指营业收入和营业支出吗
  • 企业公司怎么申请
  • 固定资产大修理和更新改造的区别
  • 企业收到收据后怎么处理
  • 税收制度政策
  • 其他业务收入如何核算
  • 商品流通企业应交那些税费
  • 水费差额缴税如何计算
  • 兼职员工对公司的好处
  • 收汇结汇以什么汇率入账
  • 当月发生业务下月开票如何做账
  • 固定资产折旧年限
  • 报关单金额大于出口发票金额
  • 应付账款的发生额怎么算
  • 转账支票一定要填写支付密码吗?
  • 应交土地增值税的三种情况
  • 未分配利润的
  • 实缴发票和月结发票知乎
  • 增值税相关的问题
  • 总分类账封面封地和启用页的区别
  • 房产预售什么时候开始
  • mysql的心得体会
  • 详解标准mysql(x64) Windows版安装过程
  • nodejs用法
  • node.js和go
  • js性能优化方法
  • 江苏国税,地税怎么交
  • 航天信息服务费300元
  • 姓名章加不加印字
  • 抚顺交车辆购置税在哪交
  • 注销的卡补回来还能恢复以前的套餐吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设