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 相关文章推荐
使用Python3中的gettext模块翻译Python源码以支持多语言
Mar 31 Python
python实现批量监控网站
Sep 09 Python
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
Dec 15 Python
Python学习思维导图(必看篇)
Jun 26 Python
深入浅析python 中的匿名函数
May 21 Python
tensorflow: 查看 tensor详细数值方法
Jun 13 Python
python 实现识别图片上的数字
Jul 30 Python
对pytorch中的梯度更新方法详解
Aug 20 Python
python中的django是做什么的
Jul 31 Python
python与idea的集成的实现
Nov 20 Python
Ubuntu20下的Django安装的方法步骤
Jan 24 Python
python必学知识之文件操作(建议收藏)
May 30 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中一些可以替代正则表达式函数的字符串操作函数
2014/11/17 PHP
jquery $.ajax入门应用一
2008/11/19 Javascript
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
Javascript 键盘事件的组合使用实现代码
2012/05/04 Javascript
动态加载js和css(外部文件)
2013/04/17 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
JavaScript异步编程Promise模式的6个特性
2014/04/03 Javascript
JQuery记住用户名和密码的具体实现
2014/04/04 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
jquery实现简单文字提示效果
2015/12/02 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
Javascript 实现放大镜效果实例详解
2016/12/03 Javascript
JavaScript对象封装的简单实现方法(3种方法)
2017/01/03 Javascript
javascript判断元素存在和判断元素存在于实时的dom中的方法
2017/01/17 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
2017/06/04 Javascript
AngularJS 最常用的八种功能(基础知识)
2017/06/26 Javascript
vue中如何使用ztree
2018/02/06 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
es6中let和const的使用方法详解
2020/02/24 Javascript
在Python下进行UDP网络编程的教程
2015/04/29 Python
django 单表操作实例详解
2019/07/30 Python
妙用itchat! python实现久坐提醒功能
2019/11/25 Python
python向图片里添加文字
2019/11/26 Python
python中os包的用法
2020/06/01 Python
python绘图pyecharts+pandas的使用详解
2020/12/13 Python
HTML5 LocalStorage 本地存储详细概括(多图)
2017/08/18 HTML / CSS
农药学硕士毕业生自荐信
2013/09/25 职场文书
师范大学应届生求职信
2013/11/21 职场文书
茶楼服务员岗位职责
2015/02/09 职场文书
小学副班长竞选稿
2015/11/21 职场文书
Python图片检索之以图搜图
2021/05/31 Python
深入浅析Django MTV模式
2021/09/04 Python
在CSS中使用when/else的方法
2022/01/18 HTML / CSS
Python用any()函数检查字符串中的字母以及如何使用all()函数
2022/04/14 Python
WINDOWS下安装mysql 8.x 的方法图文教程
2022/04/19 MySQL