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中使用SimpleParse模块进行解析的教程
Apr 11 Python
Python中输出ASCII大文字、艺术字、字符字小技巧
Apr 28 Python
Python通过select实现异步IO的方法
Jun 04 Python
Python本地与全局命名空间用法实例
Jun 16 Python
对numpy中轴与维度的理解
Apr 18 Python
Python给图像添加噪声具体操作
Mar 03 Python
python numpy之np.random的随机数函数使用介绍
Oct 06 Python
Python连接SQLite数据库并进行增册改查操作方法详解
Feb 18 Python
Python xlrd excel文件操作代码实例
Mar 10 Python
Python操作Excel把数据分给sheet
May 20 Python
在python中使用pyspark读写Hive数据操作
Jun 06 Python
分析Python感知线程状态的解决方案之Event与信号量
Jun 16 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中养成7个面向对象的好习惯
2010/07/17 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
PHP实现导出带样式的Excel
2016/08/28 PHP
解决laravel id非自增 模型取回为0 的问题
2019/10/11 PHP
JS对URL字符串进行编码/解码分析
2008/10/25 Javascript
js iframe跨域访问(同主域/非同主域)分别深入介绍
2013/01/24 Javascript
js中的前绑定和后绑定详解
2013/08/01 Javascript
jQuery中bind与live的用法及区别小结
2014/01/27 Javascript
js对象的复制继承实例
2015/01/10 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
JavaScript事件类型中焦点、鼠标和滚轮事件详解
2016/01/25 Javascript
原生JS实现不断变化的标签
2017/05/22 Javascript
监听element-ui table滚动事件的方法
2019/03/26 Javascript
在Vue 中获取下拉框的文本及选项值操作
2020/08/13 Javascript
vue组件是如何解析及渲染的?
2021/01/13 Vue.js
[19:59]2014DOTA2国际邀请赛 IG战队纪录片
2014/08/07 DOTA
Python模块学习 datetime介绍
2012/08/27 Python
零基础学Python(一)Python环境安装
2014/08/20 Python
Python性能优化的20条建议
2014/10/25 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
2018/01/18 Python
python读取文本绘制动态速度曲线
2018/06/21 Python
解决python3运行selenium下HTMLTestRunner报错的问题
2018/12/27 Python
Python OpenCV利用笔记本摄像头实现人脸检测
2020/08/20 Python
PyCharm中代码字体大小调整方法
2019/07/29 Python
numpy库reshape用法详解
2020/04/19 Python
基于python纯函数实现井字棋游戏
2020/05/27 Python
英国时尚家具、家居饰品及礼品商店:Graham & Green
2016/09/15 全球购物
市场营销个人求职信范文
2014/02/02 职场文书
研究生考核个人自我鉴定
2014/03/27 职场文书
三项教育活动实施方案
2014/03/30 职场文书
机关作风建设剖析材料
2014/10/11 职场文书
全陪导游词开场白
2015/05/29 职场文书
入党积极分子培养联系人意见
2015/08/12 职场文书
Go各时间字符串使用解析
2021/04/02 Golang
SpringBoot整合MongoDB的实现步骤
2021/06/23 MongoDB
Docker安装MySql8并远程访问的实现
2022/07/07 Servers