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中的字典详细介绍
Sep 18 Python
在Python的Flask框架中实现单元测试的教程
Apr 20 Python
Python自定义主从分布式架构实例分析
Sep 19 Python
python利用正则表达式提取字符串
Dec 08 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
Feb 21 Python
详解Python 4.0 预计推出的新功能
Jul 26 Python
python中JWT用户认证的实现
May 18 Python
python线性插值解析
Jul 05 Python
浅析Python 抽象工厂模式的优缺点
Jul 13 Python
如何通过Python实现RabbitMQ延迟队列
Nov 28 Python
Pandas中DataFrame交换列顺序的方法实现
Dec 14 Python
详解Python如何批量采集京东商品数据流程
Jan 22 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设计模式中单例模式的应用分析
2013/05/15 PHP
PIGCMS 如何关闭聊天机器人
2015/02/12 PHP
PHP封装CURL扩展类实例
2015/07/28 PHP
thinkPHP5.0框架应用请求生命周期分析
2017/03/25 PHP
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
mailto的使用技巧分享
2012/12/21 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
javascript下拉列表菜单的实现方法
2015/11/18 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
2016/10/10 Javascript
javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
2016/10/27 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
vue2.0使用swiper组件实现轮播效果
2017/11/27 Javascript
Express之托管静态文件的方法
2018/06/01 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
[23:21]Ti4 冒泡赛第二轮DK vs C9 2
2014/07/14 DOTA
Python中实现结构相似的函数调用方法
2015/03/10 Python
Python算法应用实战之栈详解
2017/02/04 Python
python数据封装json格式数据
2018/03/04 Python
pytorch 固定部分参数训练的方法
2019/08/17 Python
pyenv虚拟环境管理python多版本和软件库的方法
2019/12/26 Python
python烟花效果的代码实例
2020/02/25 Python
Python Selenium截图功能实现代码
2020/04/26 Python
详解CSS3 用border写 空心三角箭头 (两种写法)
2017/09/29 HTML / CSS
印尼旅游网站:via
2017/11/12 全球购物
全球最大运动品牌的男装、女装和童装官方库存商:A&A Sports
2021/01/17 全球购物
网上常见的一份Linux面试题(多项选择部分)
2014/09/09 面试题
建筑施工实习自我鉴定
2013/09/19 职场文书
物理系毕业生自荐书
2014/06/13 职场文书
求职信范文怎么写
2015/03/19 职场文书
2015年大学生实习评语
2015/03/25 职场文书
教学督导岗位职责
2015/04/10 职场文书
三八节活动主持词
2015/07/04 职场文书
Python深度学习之实现卷积神经网络
2021/06/05 Python
使用CSS实现一个搜索引擎的原理解析
2021/09/25 HTML / CSS