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 相关文章推荐
Windows下Python的Django框架环境部署及应用编写入门
Mar 10 Python
详解python之配置日志的几种方式
May 22 Python
Python操作MySQL模拟银行转账
Mar 12 Python
python调用API实现智能回复机器人
Apr 10 Python
浅谈Tensorflow模型的保存与恢复加载
Apr 26 Python
JSON文件及Python对JSON文件的读写操作
Oct 07 Python
python selenium 弹出框处理的实现
Feb 26 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
Jul 22 Python
numpy求平均值的维度设定的例子
Aug 24 Python
python flask中动态URL规则详解
Nov 22 Python
python连接打印机实现打印文档、图片、pdf文件等功能
Feb 07 Python
python实现简单倒计时功能
Apr 21 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中取得URL的根域名的代码
2011/03/23 PHP
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
Laravel 5.5官方推荐的Nginx配置学习教程
2017/10/06 PHP
关于laravel模板中生成URL的几种模式总结
2019/10/18 PHP
用Jquery实现可编辑表格并用AJAX提交到服务器修改数据
2009/12/27 Javascript
基于jquery的合并table相同单元格的插件(精简版)
2011/04/05 Javascript
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
js将字符串转成正则表达式的实现方法
2013/11/13 Javascript
一个js控制的导航菜单实例代码
2013/12/03 Javascript
jquery仿搜索自动联想功能代码
2014/05/23 Javascript
在HTML代码中使用JavaScript代码的例子
2014/10/16 Javascript
JavaScript实现列出数组中最长的连续数
2014/12/29 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
jquery插件orbit.js实现图片折叠轮换特效
2015/04/14 Javascript
完美兼容多浏览器的js判断图片路径代码汇总
2015/04/17 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
2015/08/18 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
2015/08/22 Javascript
js console.log打印对像与数组用法详解
2016/01/21 Javascript
javascript实现标签切换代码示例
2016/05/22 Javascript
JS正则表达式验证中文字符
2017/05/08 Javascript
vue 文件目录结构详解
2017/11/24 Javascript
JS中的BOM应用
2018/02/02 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
2018/06/05 Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
2020/06/24 Javascript
[00:16]热血竞技场
2019/03/06 DOTA
python中类的一些方法分析
2014/09/25 Python
Python创建xml的方法
2015/03/10 Python
Python 3.8正式发布,来尝鲜这些新特性吧
2019/10/15 Python
numpy中生成随机数的几种常用函数(小结)
2020/08/18 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
英国空调、除湿机和通风设备排名第一:Air Con Centre
2019/02/25 全球购物
毕业实习个人鉴定范文
2013/12/10 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
物流业务员岗位职责
2015/04/03 职场文书