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 相关文章推荐
Python中的文件和目录操作实现代码
Mar 13 Python
Python异常学习笔记
Feb 03 Python
Python生成不重复随机值的方法
May 11 Python
使用Python实现BT种子和磁力链接的相互转换
Nov 09 Python
python绘制直线的方法
Jun 30 Python
Python用csv写入文件_消除空余行的方法
Jul 06 Python
CentOS7下python3.7.0安装教程
Jul 30 Python
django 实现编写控制登录和访问权限控制的中间件方法
Jan 15 Python
python3 打印输出字典中特定的某个key的方法示例
Jul 06 Python
Python格式化输出--%s,%d,%f的代码解析
Apr 29 Python
Django获取model中的字段名和字段的verbose_name方式
May 19 Python
解决pytorch 交叉熵损失输出为负数的问题
Jul 07 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
Javascript基础教程之switch语句
2015/01/18 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
JavaScript实现将文本框的值插入指定位置的方法
2015/08/13 Javascript
js实现获取两个日期之间所有日期的方法
2016/06/17 Javascript
AngularJS 中的事件详解
2016/07/28 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
2017/06/26 Javascript
微信小程序自定义模态对话框实例详解
2017/08/16 Javascript
详解Vuex中mapState的具体用法
2017/09/28 Javascript
AngularJS实时获取并显示密码的方法
2018/02/06 Javascript
[02:59]DOTA2完美大师赛主赛事第三日精彩集锦
2017/11/25 DOTA
列举Python中吸引人的一些特性
2015/04/09 Python
Python使用MONGODB入门实例
2015/05/11 Python
python实现ID3决策树算法
2018/08/29 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
python3.8 微信发送服务器监控报警消息代码实现
2019/11/05 Python
windows、linux下打包Python3程序详细方法
2020/03/17 Python
CSS3的column-fill属性对齐列内容高度的用法详解
2016/07/01 HTML / CSS
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
美国首屈一指的礼品篮供应商:GiftTree
2018/01/06 全球购物
丝芙兰香港官网:Sephora香港
2018/03/13 全球购物
屈臣氏乌克兰:Watsons UA
2019/10/29 全球购物
SOA面试题:如何在SOA中实现松耦合
2013/07/21 面试题
数学教学随笔感言
2014/02/17 职场文书
中学生国旗下讲话稿
2014/04/26 职场文书
反腐倡廉警示教育活动总结
2014/05/05 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
教师党的群众路线学习心得体会
2014/11/04 职场文书
2014年计生协会工作总结
2014/11/21 职场文书
2014年小学数学工作总结
2014/12/12 职场文书
2015年超市收银员工作总结
2015/04/25 职场文书
党员个人承诺书
2015/04/27 职场文书
2015年挂职干部工作总结
2015/05/14 职场文书
大学生饮品店创业计划书范文
2019/07/10 职场文书
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis
python数字图像处理:图像简单滤波
2022/06/28 Python