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 相关文章推荐
django站点管理详解
Dec 12 Python
python 执行shell命令并将结果保存的实例
May 11 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
May 24 Python
windows下python 3.6.4安装配置图文教程
Aug 21 Python
django 自定义filter 判断if var in list的例子
Aug 20 Python
利用pytorch实现对CIFAR-10数据集的分类
Jan 14 Python
python圣诞树编写实例详解
Feb 13 Python
Python换行与不换行的输出实例
Feb 19 Python
django haystack实现全文检索的示例代码
Jun 24 Python
经验丰富程序员才知道的8种高级Python技巧
Jul 27 Python
Python机器学习应用之工业蒸汽数据分析篇详解
Jan 18 Python
Python 恐龙跑跑小游戏实现流程
Feb 15 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
destoon供应信息title调用出公司名称的方法
2014/08/22 PHP
ecshop实现smtp发送邮件
2015/02/03 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
JS backgroundImage控制
2009/05/19 Javascript
jquery.validate使用攻略 第三部
2010/07/01 Javascript
JavaScript 基础篇(一)
2012/03/30 Javascript
jquery 获取标签名(tagName)示例代码
2013/07/11 Javascript
javascript数组去重方法汇总
2015/04/23 Javascript
JQuery菜单效果的两个实例讲解(3)
2015/09/17 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
Js动态设置rem来实现移动端字体的自适应代码
2016/10/14 Javascript
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
vue-resource + json-server模拟数据的方法
2017/11/02 Javascript
jquery.picsign图片标注组件实例详解
2018/02/02 jQuery
4个顶级JavaScript高级文本编辑器
2018/10/10 Javascript
vue3.0中友好使用antdv示例详解
2021/01/05 Vue.js
Python中的startswith和endswith函数使用实例
2014/08/25 Python
详解Python当中的字符串和编码
2015/04/25 Python
python实现简单购物商城
2016/05/21 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
2020/06/23 Python
Python动态生成多维数组的方法示例
2018/08/09 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
2019/04/18 Python
Python内存管理实例分析
2019/07/10 Python
Django url,从一个页面调到另个页面的方法
2019/08/21 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
2020/03/26 Python
利用python生成照片墙的示例代码
2020/04/09 Python
Python3利用openpyxl读写Excel文件的方法实例
2021/02/03 Python
利用CSS3的线性渐变linear-gradient制作边框的示例
2016/06/02 HTML / CSS
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
西班牙床垫网上商店:Colchones.es
2018/05/06 全球购物
技能比赛获奖感言
2014/02/14 职场文书
升国旗仪式主持词
2014/03/19 职场文书
静心口服夜广告词
2014/03/20 职场文书
晚会开场白和结束语
2015/05/29 职场文书
停车场管理制度范本
2015/08/05 职场文书
nginx rewrite功能使用场景分析
2022/05/30 Servers