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 相关文章推荐
Pyramid将models.py文件的内容分布到多个文件的方法
Nov 27 Python
python获取指定路径下所有指定后缀文件的方法
May 26 Python
python 环境变量和import模块导入方法(详解)
Jul 11 Python
深入理解python中函数传递参数是值传递还是引用传递
Nov 07 Python
python字符串中匹配数字的正则表达式
Jul 03 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
Feb 18 Python
Python操作MySQL数据库的示例代码
Jul 13 Python
python中upper是做什么用的
Jul 20 Python
Django框架安装及项目创建过程解析
Sep 14 Python
Python-OpenCV教程之图像的位运算详解
Jun 21 Python
Django中session进行权限管理的使用
Jul 09 Python
Python中的嵌套循环详情
Mar 23 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
XAMPP安装与使用方法详细解析
2013/11/27 PHP
php+ajax实现无刷新分页
2015/11/18 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
JavaScript几种形式的树结构菜单
2010/05/10 Javascript
JavaScript对象的property属性详解
2014/04/01 Javascript
node.js入门教程迷你书、node.js入门web应用开发完全示例
2014/04/06 Javascript
jQuery语法小结(超实用)
2015/12/31 Javascript
JS+DIV实现的卷帘效果示例
2017/03/22 Javascript
JS实现复选框的全选和批量删除功能
2017/04/05 Javascript
JavaScript 函数的定义-调用、注意事项
2017/04/16 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
2017/05/26 Javascript
基于ES6作用域和解构赋值详解
2017/11/03 Javascript
js断点调试心得分享(必看篇)
2017/12/08 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
2017/12/20 Javascript
微信小程序实现同一页面取值的方法分析
2019/04/30 Javascript
部署vue+Springboot前后端分离项目的步骤实现
2020/05/31 Javascript
[01:32]2014DOTA2西雅图邀请赛 CIS我们有信心进入正赛
2014/07/08 DOTA
Python中DJANGO简单测试实例
2015/05/11 Python
Python利用Django如何写restful api接口详解
2018/06/08 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
python 将日期戳(五位数时间)转换为标准时间
2019/07/11 Python
Python pygame绘制文字制作滚动文字过程解析
2019/12/12 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
python pptx复制指定页的ppt教程
2020/02/14 Python
python打包多类型文件的操作方法
2020/09/21 Python
印度第一网上礼品店:IGP.com
2020/02/06 全球购物
俄罗斯最大的隐形眼镜销售网站:Ochkov.Net
2021/02/07 全球购物
敏捷开发的主要原则都有哪些
2015/04/26 面试题
一夜的工作教学反思
2014/02/08 职场文书
捐助贫困学生倡议书
2014/05/16 职场文书
员工激励培训演讲稿
2014/09/16 职场文书
劳模先进事迹材料
2014/12/24 职场文书
劳动保障个人工作总结
2015/03/04 职场文书
庆祝教师节新闻稿
2015/07/17 职场文书
《陶罐和铁罐》教学反思
2016/03/03 职场文书
关于Python OS模块常用文件/目录函数详解
2021/07/01 Python