python 利用文件锁单例执行脚本的方法


Posted in Python onFebruary 19, 2019

你可能会遇到这样的要求,一个脚本,只允许有一个实例。

在python中,为了实现这个需求,可以引入fcntl模块对文件加一个排他锁,这样一来,先启动的实例拥有了文件锁,而后启动的实例则因无法获取锁而退出

#coding=utf-8
import fcntl, sys, time, os 
pidfile = 0 
 
def ApplicationInstance(): 
  global pidfile 
  pidfile = open(os.path.realpath(__file__), "r") 
  try: 
    fcntl.flock(pidfile, fcntl.LOCK_EX | fcntl.LOCK_NB) #创建一个排他锁,并且所被锁住其他进程不会阻塞 
  except: 
    print "another instance is running..." 
    sys.exit(1) 
 
if __name__ == "__main__": 
  ApplicationInstance() 
  while True: 
    print 'running...' 
    time.sleep(1)

需要注意的是,fcntl模块只能在linux环境下使用,windows上是没有的,这再次警告我们,拥抱linux,远离windows

以上这篇python 利用文件锁单例执行脚本的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中运行并行任务技巧
Feb 26 Python
Python 内置函数complex详解
Oct 23 Python
关于Python如何避免循环导入问题详解
Sep 14 Python
python编写Logistic逻辑回归
Dec 30 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
Jun 14 Python
python实现接口并发测试脚本
Jun 25 Python
Flask配置Cors跨域的实现
Jul 12 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
Dec 09 Python
利用OpenCV和Python实现查找图片差异
Dec 19 Python
Python利用逻辑回归分类实现模板
Feb 15 Python
Python下载网易云歌单歌曲的示例代码
Aug 12 Python
Python 下载Bing壁纸的示例
Sep 29 Python
对Python协程之异步同步的区别详解
Feb 19 #Python
在python里从协程返回一个值的示例
Feb 19 #Python
Python3多线程基础知识点
Feb 19 #Python
Python进阶之全面解读高级特性之切片
Feb 19 #Python
在python里协程使用同步锁Lock的实例
Feb 19 #Python
对python 通过ssh访问数据库的实例详解
Feb 19 #Python
python 通过SSHTunnelForwarder隧道连接redis的方法
Feb 19 #Python
You might like
php download.php实现代码 跳转到下载文件(response.redirect)
2009/08/26 PHP
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
2010/02/16 PHP
php代码中使用换行及(\n或\r\n和br)的应用
2013/02/02 PHP
深入理解PHP之OpCode原理详解
2016/06/01 PHP
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
JS实现保留n位小数的四舍五入问题示例
2016/08/03 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
新手必须知的Node.js 4个JavaScript基本概念
2018/09/16 Javascript
layui 富文本编辑器和textarea值的相互传递方法
2019/09/18 Javascript
JS实现横向跑马灯效果代码
2020/04/20 Javascript
vue使用echarts实现水平柱形图实例
2020/09/09 Javascript
node koa2 ssr项目搭建的方法步骤
2020/12/11 Javascript
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
Python中变量交换的例子
2014/08/25 Python
详细解读Python中解析XML数据的方法
2015/10/15 Python
Python爬虫辅助利器PyQuery模块的安装使用攻略
2016/04/24 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
2018/02/24 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
python批量修改文件编码格式的方法
2018/05/31 Python
python实现给微信指定好友定时发送消息
2019/04/29 Python
Python跳出多重循环的方法示例
2019/07/03 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
2020/06/02 Python
python有几个版本
2020/06/17 Python
五分钟带你搞懂python 迭代器与生成器
2020/08/30 Python
H5离线存储Manifest原理及使用
2020/04/28 HTML / CSS
移动通信专业自荐信范文
2013/11/12 职场文书
毕业生的求职信范文分享
2013/12/04 职场文书
关于毕业的中学校园广播稿
2014/01/26 职场文书
简单的大学生自我鉴定
2014/02/18 职场文书
2014年教师个人工作总结
2014/11/10 职场文书
收费员岗位职责
2015/02/14 职场文书
辩护意见书
2015/06/04 职场文书
python基础之停用词过滤详解
2021/04/21 Python
CSS link与@import的区别和用法解析
2023/05/07 HTML / CSS