Python实现保证只能运行一个脚本实例


Posted in Python onJune 24, 2015

保证只能运行一个脚本实例,方法是程序运行时监听一个特定端口,如果失败则说明已经有实例在跑。

使用装饰器实现,便于重用

import functools

def just_one_instance(func):
'''

装饰器

如果已经有实例在跑则退出

:return:
'''

    @functools.wraps(func)

    def f(*args,**kwargs):

        import socket

        try:

# 全局属性,否则变量会在方法退出后被销毁

            global s

            s = socket.socket()

            host = socket.gethostname()

            s.bind((host, 60123))

        except:

            print('already has an instance')

            return None

        return func(*args,**kwargs)

    return f

[code]

在脚本的主函数上使用:

[code]

@just_one_instance

main():

    do sth.
Python 相关文章推荐
python通过imaplib模块读取gmail里邮件的方法
May 08 Python
python算法表示概念扫盲教程
Apr 13 Python
python中的迭代和可迭代对象代码示例
Dec 27 Python
Windows 64位下python3安装nltk模块
Sep 19 Python
Python3多线程版TCP端口扫描器
Aug 31 Python
Flask框架 CSRF 保护实现方法详解
Oct 30 Python
Python绘制二维曲线的日常应用详解
Dec 04 Python
Python代码块及缓存机制原理详解
Dec 13 Python
Python django框架开发发布会签到系统(web开发)
Feb 12 Python
windows10环境下用anaconda和VScode配置的图文教程
Mar 30 Python
tensorflow实现将ckpt转pb文件的方法
Apr 22 Python
python基于Kivy写一个图形桌面时钟程序
Jan 28 Python
Python中的默认参数详解
Jun 24 #Python
Python中的下划线详解
Jun 24 #Python
Python装饰器使用实例:验证参数合法性
Jun 24 #Python
Python线程详解
Jun 24 #Python
Python函数式编程指南(四):生成器详解
Jun 24 #Python
Python函数式编程指南(三):迭代器详解
Jun 24 #Python
Python函数式编程指南(二):从函数开始
Jun 24 #Python
You might like
PHP中防止直接访问或查看或下载config.php文件的方法
2012/07/07 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
用JavaScript脚本实现Web页面信息交互
2006/12/21 Javascript
JavaScript的Cookies
2008/01/16 Javascript
动态刷新 dorado树的js代码
2009/06/12 Javascript
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
2010/06/11 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
js实现每日自动换一张图片的方法
2015/05/04 Javascript
javascript 常见功能汇总
2015/06/11 Javascript
jquery网页日历显示控件calendar3.1使用详解
2016/11/24 Javascript
浅析vue数据绑定
2017/01/17 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
使用cropper.js裁剪头像的实例代码
2017/09/29 Javascript
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
浅谈Node 异步IO和事件循环
2019/05/05 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
python发送伪造的arp请求
2014/01/09 Python
python通过pil模块将raw图片转换成png图片的方法
2015/03/16 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
2017/11/16 Python
对django xadmin自定义菜单的实例详解
2019/01/03 Python
python画图把时间作为横坐标的方法
2019/07/07 Python
使用Python轻松完成垃圾分类(基于图像识别)
2019/07/09 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
python 上下文管理器及自定义原理解析
2019/11/19 Python
python中如何打包用户自定义模块
2020/09/23 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
2020/09/26 Python
美国非常受欢迎的Spa品牌:Bliss必列斯
2018/04/10 全球购物
师范教师大学生职业生涯规划范文
2014/01/05 职场文书
司仪主持词两篇
2014/03/22 职场文书
公司会议策划方案
2014/05/17 职场文书
安全宣传标语口号
2014/06/06 职场文书
计算机毕业生自荐信
2014/06/12 职场文书
2015年秋季新学期寄语
2015/03/25 职场文书
水电施工员岗位职责
2015/04/11 职场文书
CSS 一行代码实现头像与国旗的融合
2021/10/24 HTML / CSS