Python实现脚本锁功能(同时只能执行一个脚本)


Posted in Python onMay 10, 2017

1. 文件锁

脚本启动前检查特定文件是否存在,不存在就启动并新建文件,脚本结束后删掉特定文件。

通过文件的判断来确定脚本是否正在执行。

方法实现也比较简单,这里以python脚本为例

#coding=utf-8
 #
 # 文件锁脚本测试
 #
 import os  #操作系统
 import time
 lockfilepath = "/opt/lock.txt";
 #判断文件是否存在
 if os.path.exists(lockfilepath):
  #文件存在,说明脚本正在执行
  print("脚本正在执行")
 else:
  #文件不存在,创建文件,并执行任务。
  lockfile = open(lockfilepath,"w+");
  print ("文件锁 任务模拟sleep 10s");
 time.sleep(10);
  print ("任务模拟结束 sleep over ");
  #删除文件
  os.remove(lockfilepath);

文件锁测试结果

Python实现脚本锁功能(同时只能执行一个脚本)

Python实现脚本锁功能(同时只能执行一个脚本)

2.端口占用

使用socket模块,在脚本执行时,给系统中增加一个端口,在脚本执行完后释放。

脚本执行时,去创建这个端口,如果脚本还在执行,端口会创建失败,提示脚本还在执行。

实现方法也比较简单:Python脚本

#coding=utf-8
 import time
 import socket 
 suo = 1
 try:
  global hyf_suo 
  hyf_suo = socket.socket()
  addr = ('',98889)
  hyf_suo.bind(addr);
  suo = 1;
 except:
  suo = 2;
  print('already has an instance')
 
 if(suo==1):
  print ("锁住 sleep ");
  time.sleep(10);
  print ("sleep over ");
 else:
  print("已经加锁了");

 端口锁测试结果

Python实现脚本锁功能(同时只能执行一个脚本)

Python实现脚本锁功能(同时只能执行一个脚本)

结论

以上两种方法都能实现脚本锁的功能,个人更倾向于使用第二种方法。端口锁的方法。

以上所述是小编给大家介绍的Python实现脚本锁功能(同时只能执行一个脚本),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
解决Pycharm界面的子窗口不见了的问题
Jan 17 Python
Django基础三之视图函数的使用方法
Jul 18 Python
Windows10下 python3.7 安装 facenet的教程
Sep 10 Python
用Python画一个LinkinPark的logo代码实例
Sep 10 Python
用python画一只可爱的皮卡丘实例
Nov 21 Python
python 实现二维字典的键值合并等函数
Dec 06 Python
PyTorch中的padding(边缘填充)操作方式
Jan 03 Python
Django框架获取form表单数据方式总结
Apr 22 Python
浅谈PyTorch中in-place operation的含义
Jun 27 Python
opencv 图像轮廓的实现示例
Jul 08 Python
python 实现定时任务的四种方式
Apr 01 Python
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
Apr 14 Python
python 3.5下xadmin的使用及修复源码bug
May 10 #Python
Python遍历文件夹和读写文件的实现方法
May 10 #Python
python中requests小技巧
May 10 #Python
Python实现针对中文排序的方法
May 09 #Python
浅谈python socket函数中,send与sendall的区别与使用方法
May 09 #Python
Python利用operator模块实现对象的多级排序详解
May 09 #Python
网站渗透常用Python小脚本查询同ip网站
May 08 #Python
You might like
PHP 文章中的远程图片采集到本地的代码
2009/07/30 PHP
学习使用curl采集curl使用方法
2012/01/11 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
PHP模板引擎smarty详细介绍
2015/05/26 PHP
PHP Laravel中的Trait使用方法
2019/01/20 PHP
经验几则 推荐
2006/09/05 Javascript
juqery 学习之三 选择器 层级 基本
2010/11/25 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
2013/06/18 Javascript
jquery ajax实现下拉框三级无刷新联动,且保存保持选中值状态
2013/10/29 Javascript
解析JavaScript中delete操作符不能删除的对象
2013/12/03 Javascript
jquery ajax 局部无刷新更新数据的实现案例
2014/02/08 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
node.js中的events.emitter.once方法使用说明
2014/12/10 Javascript
JavaScript获取一个范围内日期的方法
2015/04/24 Javascript
Js的Array数组对象详解
2016/02/22 Javascript
nodeJS删除文件方法示例
2016/12/25 NodeJs
Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
2017/12/23 Javascript
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
微信小程序picker组件关于objectArray数据类型的绑定方法
2019/03/13 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
jquery实现动态改变css样式的方法分析
2019/05/27 jQuery
微信小程序点击滚动到指定位置的实现
2020/05/22 Javascript
javascript实现简易计算器功能
2020/09/23 Javascript
[40:55]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#4Newbee VS Fnatic
2016/03/03 DOTA
Python 编程速成(推荐)
2019/04/15 Python
用python给自己做一款小说阅读器过程详解
2019/07/11 Python
深入理解Python 多线程
2020/06/16 Python
详解python变量与数据类型
2020/08/25 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
html5如何在Canvas中实现自定义路径动画示例
2017/09/18 HTML / CSS
Turnbull & Asser官网:英国皇室御用的顶级定制衬衫
2019/01/31 全球购物
校园自助餐厅的创业计划书
2013/12/26 职场文书
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
优秀团员自我评价范文
2014/04/23 职场文书
C++程序员求职信
2014/05/07 职场文书
爱牙日宣传活动总结
2015/02/05 职场文书