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 分析Nginx访问日志并保存到MySQL数据库实例
Mar 13 Python
python检测某个变量是否有定义的方法
May 20 Python
在Django中管理Users和Permissions以及Groups的方法
Jul 23 Python
python正则表达式re之compile函数解析
Oct 25 Python
python实现爬取百度图片的方法示例
Jul 06 Python
python中的反斜杠问题深入讲解
Aug 12 Python
python能做什么 python的含义
Oct 12 Python
python opencv将表格图片按照表格框线分割和识别
Oct 30 Python
详解Python在使用JSON时需要注意的编码问题
Dec 06 Python
Python @property装饰器原理解析
Jan 22 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
Jul 13 Python
用Python仅20行代码编写一个简单的端口扫描器
Apr 08 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面向对象全攻略 (七) 继承性
2009/09/30 PHP
一个PHP的String类代码
2010/04/20 PHP
PHP 反向排序和随机排序代码
2010/06/30 PHP
DOM XPATH获取img src值的query
2013/09/23 PHP
跟我学Laravel之视图 & Response
2014/10/15 PHP
thinkphp配置连接数据库技巧
2014/12/02 PHP
JS打开层/关闭层/移动层动画效果的实例代码
2013/05/11 Javascript
用javascript为页面添加天气显示实现思路及代码
2013/12/02 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
2014/06/09 Javascript
JS应用正则表达式转换大小写示例
2014/09/18 Javascript
js 连续赋值的简单实现
2016/06/13 Javascript
JS实现刷新父页面不弹出提示框的方法
2016/06/22 Javascript
React Router基础使用
2017/01/17 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2017/04/23 Javascript
JavaScript模拟文件拖选框样式v1.0的实例
2017/08/04 Javascript
修改npm全局安装模式的路径方法
2018/05/15 Javascript
webpack4+Vue搭建自己的Vue-cli项目过程分享
2018/08/29 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
2018/11/25 Javascript
bootstrap下拉分页样式 带跳转页码
2018/12/29 Javascript
使用nvm和nrm优化node.js工作流的方法
2019/01/17 Javascript
vue父组件触发事件改变子组件的值的方法实例详解
2019/05/07 Javascript
[02:06]DOTA2肉山黑名单魔法终结者 敌法师中文配音鉴赏
2013/06/17 DOTA
Python3中configparser模块读写ini文件并解析配置的用法详解
2020/02/18 Python
python同时遍历两个list用法说明
2020/05/02 Python
在python3.64中安装pyinstaller库的方法步骤
2020/06/02 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
2020/06/29 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
2020/11/28 Python
Expedia爱尔兰:酒店、机票、租车及廉价假期
2017/01/02 全球购物
千元咖啡店的创业计划书范文
2013/12/29 职场文书
自荐书4要点
2014/01/25 职场文书
就业推荐表自我鉴定
2014/03/21 职场文书
户外宣传策划方案
2014/05/25 职场文书
2015年大班保育员工作总结
2015/05/18 职场文书
公务员爱岗敬业心得体会
2016/01/25 职场文书
创业计划书之暑假培训班
2019/11/09 职场文书