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读取环境变量的方法和自定义类分享
Nov 22 Python
Python使用pymysql小技巧
Jun 04 Python
python奇偶行分开存储实现代码
Mar 19 Python
PyQt5每天必学之进度条效果
Apr 19 Python
pip安装py_zipkin时提示的SSL问题对应
Dec 29 Python
Python类的继承、多态及获取对象信息操作详解
Feb 28 Python
Python可变参数会自动填充前面的默认同名参数实例
Nov 18 Python
基于python-pptx库中文文档及使用详解
Feb 14 Python
Python自动重新加载模块详解(autoreload module)
Apr 01 Python
python实例化对象的具体方法
Jun 17 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
Jul 14 Python
python+selenium小米商城红米K40手机自动抢购的示例代码
Mar 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
Python函数式编程指南(二):从函数开始
Jun 24 #Python
You might like
PHP 上传文件的方法(类)
2009/07/30 PHP
php之Smarty模板使用方法示例详解
2014/07/08 PHP
PHP 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
php源码之将图片转化为data/base64数据流实例详解
2016/11/27 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
2018/04/08 PHP
PHP Trait功能与用法实例分析
2020/06/03 PHP
TopList标签和JavaScript结合两例
2007/08/12 Javascript
用jQuery简化JavaScript开发分析
2009/02/19 Javascript
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
jqueryUI里拖拽排序示例分析
2015/02/26 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
2015/12/08 Javascript
基于jQuery实现仿搜狐辩论投票动画代码(附源码下载)
2016/02/18 Javascript
canvas绘制表盘时钟
2017/01/23 Javascript
nuxt+axios解决前后端分离SSR的示例代码
2017/10/24 Javascript
nodejs取得当前执行路径的方法
2018/05/13 NodeJs
记React connect的几种写法(小结)
2018/09/18 Javascript
js+springMVC 提交数组数据到后台的实例
2019/09/21 Javascript
jQuery实现手风琴特效
2021/01/11 jQuery
[02:32]【DOTA2亚洲邀请赛】iceice,梦开始的地方
2017/03/13 DOTA
python类型强制转换long to int的代码
2013/02/10 Python
Python随机生成一个6位的验证码代码分享
2015/03/24 Python
Python作用域用法实例详解
2016/03/15 Python
python实现宿舍管理系统
2019/11/22 Python
Python内存映射文件读写方式
2020/04/24 Python
美国男士西装打折店:Jos. A. Bank
2017/11/13 全球购物
高级人员简历的自我评价分享
2013/11/03 职场文书
八一演出活动方案
2014/02/03 职场文书
银行服务感言
2014/03/01 职场文书
《故都的秋》教学反思
2014/04/15 职场文书
设计师求职信模板
2014/05/06 职场文书
法人委托书范本
2014/09/15 职场文书
党的群众路线教育实践活动总结材料
2014/10/30 职场文书
2015年新教师个人工作总结
2015/10/14 职场文书
小学数学新课改心得体会
2016/01/22 职场文书
css position fixed 左右双定位的实现代码
2021/04/29 HTML / CSS
《金肉人》米特&《航海王》阿鹤声优松岛实因胰脏癌去世 享寿81岁
2022/04/13 日漫