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局域网ip扫描示例分享
Apr 03 Python
python将MongoDB里的ObjectId转换为时间戳的方法
Mar 13 Python
python检测远程udp端口是否打开的方法
Mar 14 Python
Python中正则表达式的详细教程
Apr 30 Python
Python实现删除列表中满足一定条件的元素示例
Jun 12 Python
tensorflow学习笔记之mnist的卷积神经网络实例
Apr 15 Python
Python使用re模块实现信息筛选的方法
Apr 29 Python
python实现超市管理系统(后台管理)
Oct 25 Python
python groupby 函数 as_index详解
Dec 16 Python
Pytorch 实现冻结指定卷积层的参数
Jan 06 Python
使用tensorflow实现矩阵分解方式
Feb 07 Python
Python接口自动化测试框架运行原理及流程
Nov 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 读取文件内容代码(txt,js等)
2009/12/06 PHP
php不允许用户提交空表单(php空值判断)
2013/11/12 PHP
作为PHP程序员你要知道的另外一种日志
2018/07/30 PHP
jQuery 数据缓存data(name, value)详解及实现
2010/01/04 Javascript
当json键为数字时的取值方法解析
2013/11/15 Javascript
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
浅谈JavaScript Date日期和时间对象
2014/12/29 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
2015/09/07 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
2017/01/20 Javascript
Vue 2.0+Vue-router构建一个简单的单页应用(附源码)
2017/03/14 Javascript
如何使用Bootstrap创建表单
2017/03/29 Javascript
快速了解vue-cli 3.0 新特性
2018/02/28 Javascript
js防抖和节流的深入讲解
2018/12/06 Javascript
layui 上传插件 带预览 非自动上传功能的实例(非常实用)
2019/09/23 Javascript
深入解析微信小程序开发中遇到的几个小问题
2020/07/11 Javascript
[01:51]开启你的城市传奇 完美世界城市挑战赛开始报名
2018/10/09 DOTA
[01:22:28]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第一场 1月18日
2021/03/11 DOTA
学习python类方法与对象方法
2016/03/15 Python
python3使用urllib模块制作网络爬虫
2016/04/08 Python
Python 'takes exactly 1 argument (2 given)' Python error
2016/12/13 Python
python获取指定时间差的时间实例详解
2017/04/11 Python
Python排序搜索基本算法之插入排序实例分析
2017/12/11 Python
django输出html内容的实例
2018/05/27 Python
python DataFrame 取差集实例
2019/01/30 Python
python爬虫开发之Request模块从安装到详细使用方法与实例全解
2020/03/09 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
2020/05/11 Python
专科毕业生自我鉴定
2013/12/01 职场文书
《池塘边的叫声》教学反思
2014/04/12 职场文书
竞选演讲稿范文大全
2014/05/12 职场文书
商家认证委托书格式
2014/10/16 职场文书
文明倡议书
2015/01/19 职场文书
文言文辞职信
2015/02/28 职场文书
签订劳动合同通知书
2015/04/16 职场文书
军训心得体会范文(2016最新篇)
2016/01/11 职场文书
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript