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操作数据库之sqlite3打开数据库、删除、修改示例
Mar 13 Python
Python通过递归遍历出集合中所有元素的方法
Feb 25 Python
Python实现遍历windows所有窗口并输出窗口标题的方法
Mar 13 Python
python概率计算器实例分析
Mar 25 Python
python实现读取并显示图片的两种方法
Jan 13 Python
python用户评论标签匹配的解决方法
May 31 Python
Python模拟简单电梯调度算法示例
Aug 20 Python
vscode写python时的代码错误提醒和自动格式化的方法
May 07 Python
Window10上Tensorflow的安装(CPU和GPU版本)
Dec 15 Python
pytorch加载预训练模型与自己模型不匹配的解决方案
May 13 Python
python必学知识之文件操作(建议收藏)
May 30 Python
Python获取指定日期是"星期几"的6种方法
Mar 13 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+MYSQL的文章管理系统(二)
2006/10/09 PHP
获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)
2013/06/01 PHP
php中session过期时间设置及session回收机制介绍
2014/05/05 PHP
php读取3389的脚本
2014/05/06 PHP
php简单实现MVC
2015/02/05 PHP
通过Email发送PHP错误的方法
2015/07/20 PHP
正则表达式搭配js轻松处理json文本方便而老古
2013/02/17 Javascript
JS实现多物体缓冲运动实例代码
2013/11/29 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
2013/12/19 Javascript
解析jquery中的ajax缓存问题
2013/12/19 Javascript
对table和ul实现js分页示例分享
2014/02/24 Javascript
js动态修改表格行colspan列跨度的方法
2015/03/30 Javascript
jquery右下角自动弹出可关闭的广告层
2015/05/08 Javascript
JavaScript的模块化开发框架Sea.js上手指南
2016/05/12 Javascript
Node.js环境下JavaScript实现单链表与双链表结构
2016/06/12 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
AngularJs Scope详解及示例代码
2016/09/01 Javascript
JavaScript 中 avalon绑定属性总结
2016/10/19 Javascript
微信小程序 选项卡的简单实例
2017/05/24 Javascript
jstree单选功能的实现方法
2017/06/07 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
JavaScript中的几种继承方法示例
2020/12/06 Javascript
[54:53]完美世界DOTA2联赛PWL S2 GXR vs PXG 第二场 11.18
2020/11/18 DOTA
打印出python 当前全局变量和入口参数的所有属性
2009/07/01 Python
Python中使用摄像头实现简单的延时摄影技术
2015/03/27 Python
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
tornado 多进程模式解析
2018/01/15 Python
python3.x提取中文的正则表达式示例代码
2019/07/23 Python
Django配置文件代码说明
2019/12/04 Python
tensorflow常用函数API介绍
2020/04/19 Python
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
DNA测试:Orig3n
2019/03/01 全球购物
Prototype中如何为一个元素添加一个方法
2014/12/08 面试题
餐厅经理岗位职责范本
2014/02/17 职场文书
2014年度安全生产目标管理责任书
2014/07/25 职场文书
2019年健身俱乐部的创业计划书
2019/08/26 职场文书