位置: 编程技术 - 正文

Perl中使用File::Lockfile确保脚本单实例运行(perl-v)

编辑:rootadmin

推荐整理分享Perl中使用File::Lockfile确保脚本单实例运行(perl-v),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:perl curl,perl .pl,perl defined,perl defined,perl中使用SVG画折线图,perl处理文件,perl fileparse,perl处理文件,内容如对您有帮助,希望把文章链接给更多的朋友!

用Perl写了一些监控脚本,放在crontab中调度执行。有时候会发现一个脚本运行时间过长,会同时跑起多个实例,因此有必要为脚本加上控制,只运行一个实例。

最简单自然的想法,在脚本中检查并创建一个空的lock文件,脚本结束时再删除。通过判断文件是否存在的方式来判断脚本是否已经运行。不过这样做有个bug,如果脚本运行过程中异常终止,lock文件没有正常删除,就会导致脚本无法再运行。

空的lock文件不行,那么考虑在lock文件中加入一点内容,比如进程的PID号,然后通过检查该PID号的进程是否还在运行,就能避免上述bug了。在CPAN上有很多现成的模块能够完成上述功能,如File::Lockfile, File::Pid, Proc::PID::File 等。

下面是File::Lockfile的一个示例,非常简单:

Perl中使用File::Lockfile确保脚本单实例运行(perl-v)

以下是代码片段:

通过查看File/Lockfile.pm的源代码可以看到,判断lock文件中记录的进程是否已经运行,简单的通过 kill -0 $pid 即可实现。所以即使不用上述模块,自己实现也是非常容易的。

小结:

该方法是在脚本中经常用到限制单实例的方法,MySQL 等程序在每次启动前也会检查上次遗留的 mysql.pid 文件。

另一个方法:给lock文件加排它锁,判断是否有锁来确保唯一性。

7个perl数组高级操作技巧分享 1、去除一个数组中的重复元素:使用grep函数代码片段:代码:my@array=('a','b','c','a','d',1,2,5,1,5);my%count;my@uniq_times=grep{++$count{$_}2;}@array;使用转换hash代码片段

perl面向对象实例 首先让我们来看看有关Perl面向对象编程的三个基本定义:1.一个对象是指一个有办法知道它是属于哪个类的简单引用。(对象就是引用变量)2.一个类是指

Perl eval函数使用实例 Perl作为一种脚本语言可以实时地生成和执行代码。这种特性可以把代码的编译推迟到运行时,所以又称为动态代码。另外,Perl也如Java、C++一样提供了

标签: perl-v

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

上一篇:Perl实现遍历目录例子(preorder遍历)

下一篇:7个perl数组高级操作技巧分享(perl里怎么对数组实现一次遍历)

  • 快递费包不包括送货上门
  • 公司账户短期理财收益要交税吗
  • 出口税增加
  • 员工本地住宿费会计分录
  • 劳务所得报酬
  • 进项税未抵扣完怎么结转
  • 工程围挡做法
  • 法的分级
  • 办公室设计费取费标准一览表
  • 会计准则一般选择哪个
  • 外省工程需要什么手续
  • 增值税计入应付账款
  • 期货手续费会计分录
  • 外汇账户怎么做账
  • 印花税需要哪些部门核准
  • 国库集中支付账务处理
  • mac设置定时任务
  • 总分公司企业所得税合并申报
  • ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法 原创
  • window10安装教程u盘
  • PHP:pg_query()的用法_PostgreSQL函数
  • phpipam使用
  • 不合规发票扣除多少
  • 商业银行提取的贷款损失准备金
  • 员工报销的费用
  • 覆盖的盖
  • el-upload上传文件携带参数
  • 新准则下公允价值变动损益纳税调整
  • 音乐制作人评刀郎新专辑
  • 用命令ls-al显示出文件ff
  • php的序列化操作生成的哪种格式
  • 报销人和收款人不一致
  • lsscsi命令详解
  • 废品损失科目的账户结构
  • 经营租赁业务会计账务处理
  • 一般股份支付的确认计量及帐务处理怎么做?
  • 投标保证金的缴纳方式有哪些
  • 其他综合收益 综合收益
  • 优先股股息必须支付吗
  • 货款分批付的会计分录
  • 按工资申报的工龄怎么算
  • 预提费用汇缴时间怎么算
  • 上年结转库存现金会计分录
  • 长期股权投资为什么不是所有者权益
  • 报销单的经办人是什么意思
  • 公司开普票和专票税率一样吗
  • 出口销售收入要交印花税吗
  • 个体户注销流程 就找三合一企服
  • 以前年度差旅费退回
  • 利润分配的账务处理视频
  • 财政直接支付的概念
  • 原材料出库怎么做分录
  • 员工奖励账务处理流程
  • 建筑企业工程管理部职责
  • 投资别人的公司叫什么
  • 工程怎么做会计分录
  • 工程异地预缴的税款可以抵机构所在地的税金吗
  • sql语句的优化方式
  • vim入门教程
  • centos启动不了图形界面
  • xp系统怎么更改屏幕分辨率
  • linux怎么看历史记录
  • macbookpro查看硬盘
  • ubuntu安装指南
  • ubuntu apt-cdrom
  • Linux网络抓包工具
  • javascript例题
  • android studio警告
  • shell脚本wc
  • json 日期类型
  • javascript高级程序设计最新版
  • mac安装nodejs的权限问题
  • python写出来的程序怎么用
  • python+django
  • 个人的房产出租征收什么税
  • 贵州网上税务大厅官网
  • 江苏电子税务局客服电话
  • oppo纳税额
  • 烟叶税额
  • 专用发票收款人可以盖私章吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设