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 相关文章推荐
基于scrapy实现的简单蜘蛛采集程序
Apr 17 Python
Python中统计函数运行耗时的方法
May 05 Python
python中的闭包用法实例详解
May 05 Python
python通过百度地图API获取某地址的经纬度详解
Jan 28 Python
关于Pycharm无法debug问题的总结
Jan 19 Python
Python玩转加密的技巧【推荐】
May 13 Python
Django上使用数据可视化利器Bokeh解析
Jul 31 Python
python实现一个猜拳游戏
Apr 05 Python
Django多层嵌套ManyToMany字段ORM操作详解
May 19 Python
使用pycharm和pylint检查python代码规范操作
Jun 09 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
Jun 27 Python
Python常用配置文件ini、json、yaml读写总结
Jul 09 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取整函数:ceil,floor,round,intval的区别详细解析
2013/08/31 PHP
详解PHP中的null合并运算符
2015/12/30 PHP
PHP实现关键字搜索后描红功能示例
2019/07/03 PHP
基于jquery的jqDnR拖拽溢出的修改
2011/02/12 Javascript
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
2011/06/28 Javascript
jquery下checked取值问题的解决方法
2012/08/09 Javascript
JavaScript运行时库属性一览表
2014/03/14 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
AngularJS使用ngOption实现下拉列表的实例代码
2016/01/23 Javascript
jQuery获取table行数并输出单元格内容的实现方法
2016/06/30 Javascript
微信小程序 页面传参实例详解
2016/11/16 Javascript
解决URL地址中的中文乱码问题的办法
2017/02/10 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
vue.js从安装到搭建过程详解
2017/03/17 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
JS 实现微信扫一扫功能
2018/09/14 Javascript
解决iview多表头动态更改列元素发生的错误的方法
2018/11/02 Javascript
python 解析XML python模块xml.dom解析xml实例代码
2014/02/07 Python
Pandas中把dataframe转成array的方法
2018/04/13 Python
Python函数装饰器实现方法详解
2018/12/22 Python
对python判断ip是否可达的实例详解
2019/01/31 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
2020/03/18 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
2020/03/30 Python
python代码如何注释
2020/06/01 Python
Python函数调用追踪实现代码
2020/11/27 Python
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
英语专业推荐信
2013/11/16 职场文书
电力培训心得体会
2014/09/02 职场文书
2014公司党员自我评价范文
2014/09/11 职场文书
超市创业计划书
2014/09/15 职场文书
县委班子四风对照检查材料思想汇报
2014/09/29 职场文书
写景作文评语集锦
2014/12/25 职场文书
中班下学期个人总结
2015/02/12 职场文书
雨中的树观后感
2015/06/03 职场文书
5道关于python基础 while循环练习题
2021/11/27 Python
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL