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中类的继承代码实例
Oct 28 Python
零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版
Nov 06 Python
在Python中操作字典之setdefault()方法的使用
May 21 Python
Python判断直线和矩形是否相交的方法
Jul 14 Python
python 实现删除文件或文件夹实例详解
Dec 04 Python
pygame实现俄罗斯方块游戏
Jun 26 Python
Python线程之定位与销毁的实现
Feb 17 Python
Python对接六大主流数据库(只需三步)
Jul 31 Python
Python的互斥锁与信号量详解
Sep 12 Python
Python 分布式缓存之Reids数据类型操作详解
Jun 24 Python
python用700行代码实现http客户端
Jan 14 Python
Python+OpenCV实现图片中的圆形检测
Apr 07 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
thinkphp5框架API token身份验证功能示例
2019/05/21 PHP
使用CSS3实现字体颜色渐变的实现
2021/03/09 HTML / CSS
原生javascript获取元素样式属性值的方法
2010/12/25 Javascript
JQuery 文本框回车跳到下一个文本框示例代码
2013/08/30 Javascript
JavaScript中判断对象类型的几种方法总结
2013/11/11 Javascript
jQuery回调函数的定义及用法实例
2014/12/23 Javascript
jquery.validate 自定义验证方法及validate相关参数
2016/01/18 Javascript
JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件
2016/10/10 Javascript
jquery Form轻松实现文件上传
2017/05/24 jQuery
AngularJS 支付倒计时功能实现思路
2017/06/05 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
安装Node.js并启动本地服务的操作教程
2018/05/12 Javascript
.vue文件 加scoped 样式不起作用的解决方法
2018/05/28 Javascript
用图片替换checkbox原始样式并实现同样的功能
2018/11/15 Javascript
vue-cli 2.*中导入公共less文件的方法步骤
2018/11/22 Javascript
使用Vue实现移动端左滑删除效果附源码
2019/05/16 Javascript
vue回到顶部监听滚动事件详解
2019/08/02 Javascript
jQuery实现移动端笔触canvas电子签名
2020/05/21 jQuery
jquery自定义组件实例详解
2020/12/31 jQuery
python实现代理服务功能实例
2013/11/15 Python
python下MySQLdb用法实例分析
2015/06/08 Python
Python判断Abundant Number的方法
2015/06/15 Python
python画柱状图--不同颜色并显示数值的方法
2018/12/13 Python
python顺序执行多个py文件的方法
2019/06/29 Python
Python简易版停车管理系统
2019/08/12 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
Python flask框架端口失效解决方案
2020/06/04 Python
OpenCV图片漫画效果的实现示例
2020/08/18 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
python3访问字典里的值实例方法
2020/11/18 Python
高二化学教学反思
2014/01/30 职场文书
求职简历的自我评价
2014/01/31 职场文书
个人工作总结范文2014
2014/11/07 职场文书
2015年企业新年寄语
2014/12/08 职场文书
微信小程序 WeUI扩展组件库的入门教程
2022/04/21 Javascript
MySQL选择合适的备份策略和备份工具
2022/06/01 MySQL